
prisma-compute
Prisma Compute 部署與託管指南。每當使用者提到 Prisma Compute、`prisma.compute.ts`、`defineComputeConfig`、部署或託管 Prisma 應用程式、`@prisma/cli app deploy`、`compute:deploy`、`create-prisma --deploy`、`PRISMA_SERVICE_TOKEN`、`auth workspace`、Compute 應用程式/部署/建置日誌/網域、`@prisma/cli agent install`、`@prisma/cli feedback`、localhost 與 `0.0.0.0`、部署連接埠綁定,或 Hono、Elysia、Next.js、TanStack Start、Astro、Nuxt、Svelte、Nest、Turborepo 或自訂/預建構件的框架部署就緒狀態時使用。
Prisma Compute 部署與託管指南。每當使用者提到 Prisma Compute、`prisma.compute.ts`、`defineComputeConfig`、部署或託管 Prisma 應用程式、`@prisma/cli app deploy`、`compute:deploy`、`create-prisma --deploy`、`PRISMA_SERVICE_TOKEN`、`auth workspace`、Compute 應用程式/部署/建置日誌/網域、`@prisma/cli agent install`、`@prisma/cli feedback`、localhost 與 `0.0.0.0`、部署連接埠綁定,或 Hono、Elysia、Next.js、TanStack Start、Astro、Nuxt、Svelte、Nest、Turborepo 或自訂/預建構件的框架部署就緒狀態時使用。
Prisma Compute
引導代理程式完成 Prisma Compute 應用程式的建立、部署、操作以及特定框架的部署就緒狀態檢查。
Prisma Compute CLI 操作面
使用 Prisma Platform CLI 進行 Compute 應用程式工作流程:
bunx @prisma/cli@latest app deploy --help
bunx @prisma/cli@latest app --help
bunx @prisma/cli@latest build logs --help
bunx create-prisma@latest --help
使用 @prisma/cli@latest 進行 Compute 應用程式部署。使用 create-prisma@latest 建立新專案。
傳送意見回饋與回報 CLI 問題
CLI 內建意見回饋管道。每當指令當機(UNEXPECTED_ERROR)、問題無法透過疑難排解解決,或使用者要求傳送意見回饋給 Prisma 團隊時,請使用此管道:
bunx @prisma/cli@latest feedback "app deploy crashed: <第一行錯誤訊息>"
bunx @prisma/cli@latest feedback "很喜歡部署流程" --email you@example.com
當機輸出會自行導向此處:--json 當機封包會在 nextActions 中攜帶預先填好的指令作為 recover 項目(直接執行即可),而人類可讀的當機輸出則會以 Tell us what happened: 提示結尾。意見回饋是匿名的,除非傳遞 --email,且僅附上 CLI 版本、Node 版本與作業系統平台/架構。切勿在訊息中包含機密資訊、連線 URL 或使用者資料。
真相來源順序
在決定編輯或執行內容時,請依此順序使用證據:
- 專案產生的腳本與設定檔,特別是
prisma.compute.ts、compute:deploy、框架設定與package.json。 - 來自
create-prisma與@prisma/cli的 CLI 說明輸出。 - 本地安裝的套件程式碼、產生的構件與型別定義。
- 官方文件。
適用時機
在以下情況使用此技能:
- 建立可部署至 Prisma Compute 的新應用程式
- 將現有 TypeScript 應用程式部署至 Prisma Compute
- 建立或更新型別化的
prisma.compute.ts部署設定 - 判斷框架是否已準備好部署至 Compute
- 除錯
create-prisma --deploy、compute:deploy或app deploy - 管理 Compute 應用程式日誌、部署、環境變數與網域,以及列出平台分支(
branch list;沒有分支建立/刪除指令) - 檢查 GitHub/Console 建置日誌與 GitHub 推送即部署狀態
- 使用瀏覽器驗證、多個儲存的工作區或 Prisma 服務權杖執行非互動式部署
- 切換、選取、列出或登出本機 Prisma Platform 工作區(適用於
@prisma/cli) - 使用
@prisma/cli agent install|update|status安裝或更新 Prisma 技能 - 使用
@prisma/cli feedback傳送意見回饋或回報無法解決的 CLI 失敗 - 使用
@prisma/compute-sdk或 Management API 整合進行程式化部署
決策樹
-
現有專案部署或重新部署:
請參閱references/app-deploy-cli.md。 -
型別化的 Compute 設定、monorepo、部署目標、應用程式根目錄或建置/環境預設值:
請參閱references/compute-config.md。 -
特定框架的建置/執行時期工作:
請參閱references/frameworks.md。 -
從範本建立新專案:
請參閱references/create-prisma.md。 -
程式化部署、SDK、API 或底層應用程式/部署概念:
請參閱references/sdk-api.md。 -
建置、驗證、環境、部署或執行時期失敗:
請參閱references/troubleshooting.md。
規則優先順序
| 優先順序 | 類別 | 影響 | 前綴 |
|---|---|---|---|
| 1 | 指令驗證 | 重大 | verify- |
| 2 | 驗證與工作區選取 | 重大 | auth- |
| 3 | 框架就緒狀態 | 重大 | framework- |
| 4 | 執行時期主機與連接埠綁定 | 重大 | runtime- |
| 5 | 型別化的 Compute 設定 | 高 | config- |
| 6 | 分支、環境與資料庫連接 | 高 | env- |
| 7 | 部署操作 | 高 | deploy- |
| 8 | SDK 與 API 自動化 | 中 | sdk- |
快速規則
1. 指令驗證
verify-help-first- 使用 CLI 說明輸出確認指令語法。verify-prisma-vs-platform-cli- 不要假設prisma app deploy存在於 ORM CLI 中;檢查任務是否應使用@prisma/cli。verify-generated-scripts- 若專案已有產生的compute:deploy腳本,優先使用。verify-public-url- 實際部署後,要求公開部署 URL,不要依賴本機或僅就緒狀態檢查。verify-config-support- 將prisma.compute.ts視為型別化的 Compute 設定;在編輯或部署前檢查專案的設定與產生的腳本。verify-auth-workspace-support- 使用@prisma/cli auth workspace指令進行本機工作區的列出/使用/登出流程。
2. 驗證與工作區選取
auth-source-precedence- 非空的PRISMA_SERVICE_TOKEN是指令的有效驗證來源,本機 OAuth 工作區將被忽略。若該變數已設定但為空,CLI 應失敗而非回退至儲存的 OAuth。auth-multi-workspace-auth login可在同一台機器上儲存多個工作區的 OAuth 工作階段。有效工作區指標決定一般指令使用哪個儲存的 OAuth 授權。auth-list-before-switch- 使用auth workspace list --json檢查本機工作階段。代理程式應優先使用 JSON 中的工作區 ID,因為名稱可能不明確。auth-switch-explicitly- 使用auth workspace use <id-or-name>進行非互動式切換。僅在互動式選取器或僅有一個本機 OAuth 工作區時,才使用不帶引數的auth workspace use。auth-no-fallthrough- 若有效 OAuth 工作區已登出或重新整理失敗,CLI 不應靜默回退至其他快取的工作區。執行auth workspace use <id>選擇下一個工作區。auth-single-workspace-logout- 使用auth workspace logout <id-or-name>或auth logout --workspace <id-or-name>移除一個本機 OAuth 工作區工作階段。單純的auth logout會清除所有本機 OAuth 工作區工作階段。auth-service-token-switching- 當PRISMA_SERVICE_TOKEN已設定時,auth workspace use不可用,因為服務權杖是有效驗證來源;取消設定該環境變數以切換本機 OAuth 工作區。工作區登出仍僅清除本機 OAuth 狀態。auth-storage-awareness- 本機 OAuth 憑證儲存在平台驗證檔案中,工作區中繼資料則儲存在 sidecar 上下文檔案中。專案釘選儲存在.prisma/local.json中,CLI 應用程式/專案狀態則儲存在prisma.compute.ts附近的.prisma/cli/state.json中(若存在)。
3. 框架就緒狀態
framework-cli-first- 根據@prisma/cli app deploy評估部署就緒狀態,而非create-prisma能建立的範本。framework-supported-cli-deploy- Compute 部署支援nextjs、nuxt、astro、hono、nestjs、tanstack-start、custom與bun。framework-create-prisma-defaults-only-create-prisma可提供產生的預設值與compute:deploy,但並非現有應用程式的一般部署介面。framework-build-output- Compute 需要伺服器進入點或框架構件,而非僅靜態輸出。
4. 執行時期主機與連接埠綁定
runtime-bind-all-interfaces- 部署的伺服器必須綁定所有介面(0.0.0.0或框架等效值),而非硬編碼的localhost或127.0.0.1。runtime-match-http-port- 應用程式必須監聽部署的 HTTP 連接埠:盡可能讀取process.env.PORT,或傳遞相符的--http-port。runtime-readiness-port-only- Compute 就緒狀態監控監聽中的連接埠;僅回送監聽器可能顯示就緒,但公開入口無法到達。
5. 型別化的 Compute 設定
config-optional-simple-app- 部署一般單一應用程式不需要prisma.compute.ts;若無持久設定,請使用旗標。config-init-formalizer- 使用bunx @prisma/cli@latest init產生新設定:它會偵測框架、固定名稱/框架/httpPort(以及 Bun/Hono 的進入點),並提供專案連結。--format json會寫入無相依性的prisma.compute.json。init在已有任何設定時拒絕執行,絕不建立程式碼,也絕不部署。config-use-prisma-compute-ts- 將可重複使用的部署預設值放在prisma.compute.ts中(使用defineComputeConfig),而非prisma.config.ts。config-app-vs-apps- 單一部署目標使用app,monorepo 或多應用程式儲存庫使用apps;僅定義其中一個。config-monorepo-roots- 對於 monorepo,使用prisma.compute.ts宣告應用程式目標、根目錄、框架預設值、進入點、連接埠與環境變數輸入。config-targets- 在多應用程式設定中,@prisma/cli app deploy web選取apps.web目標。若無[app],指令可從目前目錄推斷目標;否則 deploy 可執行所有目標,而 build/run 需要一個目標。config-region-new-app-only- 設定中的region僅作為新建立應用程式的預設值;部署至現有應用程式會保留該應用程式目前的區域。config-custom-artifact- 對於預建構或自訂建構的構件,使用framework: "custom"搭配build.outputDirectory與build.entrypoint。config-no-project-branch-secrets- 不要在prisma.compute.ts中提交工作區、專案、分支、生產意圖、服務權杖或機密值;將這些保留在旗標、.prisma/local.json、環境變數儲存或 CI 機密中。應用程式層級的預設值(如region、root、framework、entry、httpPort與非機密的環境變數檔案路徑)應放在設定中。config-flags-win- 明確的部署旗標(如--framework、--entry、--http-port、--region與--env)會覆蓋設定中的對應值。
6. 分支、環境與資料庫
env-do-not-leak-secrets- 絕不印出完整的DATABASE_URL、服務權杖或機密值。env-deploy-loads-dotenv- 產生的部署腳本可能透過prisma.compute.ts或--env .env載入環境變數;在重新部署前檢查實際的腳本/設定。env-migrations-separate- 重新部署腳本不會執行遷移或種子資料。請分別執行適當的 Prisma 資料庫腳本。env-cli-token-name-@prisma/cli使用PRISMA_SERVICE_TOKEN進行服務權杖驗證。env-branch-scope- 分支部署、分支環境變數與分支資料庫必須使用相同的分支名稱;在指定預覽分支時,明確傳遞--branch <git-name>。env-production-vs-preview- 生產環境使用--role production,預覽範本環境使用--role preview,分支特定覆蓋使用--branch <git-name>。env-db-explicit- 透過資料庫與專案環境指令明確管理資料庫與環境變數連接;部署範例不應加入資料庫設定,且部署不會執行遷移、種子資料或自動為每個應用程式建立一個資料庫。
7. 部署操作
deploy-prod-intent- 僅在使用者意圖進行生產部署時使用--prod --yes。應用程式的首次生產部署會自動提升,無需--prod;該旗標用於後續生產分支部署的閘門。deploy-no-promote- 使用app deploy --no-promote進行建置後驗證:它會建立一個可透過自身 URL 存取的候選版本,而不影響線上部署,稍後可使用app promote <deployment-id>提升。deploy-github-default-branch- 當 Compute 應用程式連線至 GitHub 推送即部署時,合併至預設分支即為生產部署路徑;請檢查部署記錄或 GitHub 檢查執行,而非告訴使用者重新部署已合併的 PR 分支或執行預設分支的預覽部署。deploy-build-logs- 使用@prisma/cli build logs <build-id>取得 GitHub/Console 建置輸出。使用app logs取得執行時期部署日誌;兩者的 ID 不同。deploy-noninteractive-auth- 非互動式部署需要正確的有效儲存 OAuth 工作區或支援的服務權杖環境變數;絕不印出權杖。deploy-json-for-agents- 對於腳本與代理程式可讀的輸出,使用--json --no-interactive。deploy-create-project- 僅在使用者希望部署建立並連結新專案時使用--create-project <name>;它與--project和PRISMA_PROJECT_ID衝突。deploy-ops-targets- 應用程式顯示/開啟/日誌/列出部署/提升/回退/移除與網域指令也可接受來自prisma.compute.ts的[app]目標。deploy-report-cli-bugs- 遇到UNEXPECTED_ERROR或無法解決的失敗時,使用意見回饋指令回報;請參閱上方的「傳送意見回饋與回報 CLI 問題」。
8. SDK 與 API
sdk-use-cli-first- 應用程式工作流程優先使用@prisma/cli app deploy;僅在使用者建立底層自動化時才使用create-prisma建立新應用程式。sdk-result-handling-@prisma/compute-sdk回傳Result值;檢查isOk()/isErr()而非依賴例外。
建議工作流程
- 檢查專案:套件管理器、範本/框架、
package.json腳本、Prisma 版本、Prisma client 位置、prisma.compute.ts與現有的compute:deploy。 - 驗證實際使用套件的 CLI 說明輸出。
- 在專案/應用程式變更前驗證驗證上下文:
auth whoami --json,若可能有多個本機工作階段,則使用auth workspace list --json。 - 選擇路徑:
- 現有應用程式部署:若存在設定支援的目標、產生的
compute:deploy或@prisma/cli app build/run/deploy旗標 - 新應用程式範本:
create-prisma,然後使用產生的compute:deploy或@prisma/cli app deploy - 底層自動化:
@prisma/compute-sdk或 Management API
- 現有應用程式部署:若存在設定支援的目標、產生的
- 檢查框架就緒狀態以及主機/連接埠/環境/執行時期需求,包括專案與分支範圍。
- 在可行時,先執行本機建置或
app build再部署。 - 自動化時使用 JSON 輸出部署,然後要求公開 URL 並總結應用程式 URL、應用程式 ID、部署 ID、專案 ID、工作區 ID 與後續步驟。
- 對於 GitHub/Console 建置,在猜測建置失敗原因前,先檢查
Prisma Compute Deploy檢查執行或build logs <build-id>。
避免事項
- 不要將 Compute 部署指引埋入通用的
prisma-cli技能中。 - 不要為了部署而在現有應用程式內執行
create-prisma;請使用產生的compute:deploy腳本或@prisma/cli app deploy。 - 不要告訴使用者每個
create-prisma範本都能自動部署。 - 不要使用預設的
DATABASE_URL值進行部署。 - 不要假設
next start是 Compute 的執行時期路徑;Next.js 部署需要 standalone 輸出。





