Community编程与开发github.com

prisma/prisma-compute

Prisma Compute 部署与托管指南。当用户提及 Prisma Compute、`prisma.compute.ts`、`defineComputeConfig`、部署或托管 Prisma 应用、`@prisma/cli app deploy`、`compute:deploy`、`create-prisma --deploy`、`PRISMA_SERVICE_TOKEN`、Compute 认证/工作空间、应用/部署/构建日志/域名、localhost 与 `0.0.0.0`、部署端口绑定、或框架部署就绪性(Hono、Elysia、Next.js、TanStack Start、Astro、Nuxt、Svelte、Nest、Turborepo、自定义/预构建制品)时使用。

prisma-compute 是什么?

该技能为 Prisma Compute 部署与托管场景提供全面指导,涵盖应用创建、部署、操作及框架特定就绪性检查。它面向使用 Prisma Platform CLI(`@prisma/cli`)或脚手架工具(`create-prisma`)的开发者,支持 Next.js、Nuxt、Astro、Hono、NestJS、TanStack Start、Svelte、Bun 等框架,以及自定义制品。技能包括认证与工作空间管理(OAuth 与服务令牌)、构建与运行时配置(端口绑定、主机设置)、无头部署、基于分支的环境管理以及 SDK/API 集成。通过决策树和优先级规则,帮助开发者处理从新项目脚手架到生产部署、故障排除的完整生命周期,并强调配置首选 `prisma.compute.ts` 而非 `prisma.config.ts`,以及运行时必须监听 `0.0.0.0` 而非 `localhost`。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/prisma/skills/tree/main/prisma-compute

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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 [email protected]

崩溃输出会自动提示:--json 崩溃信封在 nextActions 中携带一个 recover 条目(即精确预填的命令,请直接执行),人类可读的崩溃输出以 告诉我们发生了什么: 提示结尾。除非传递 --email,否则反馈是匿名的,并且仅附加 CLI 版本、Node 版本及操作系统平台/架构。切勿在消息中包含机密信息、连接 URL 或用户数据。

真实信息来源优先级

在决定编辑或运行什么时,按此顺序使用证据:

  1. 项目生成的脚本和配置,尤其是 prisma.compute.ts、compute:deploy、框架配置和 package.json。
  2. 来自 create-prisma 和 @prisma/cli 的 CLI 帮助输出。
  3. 本地安装的包代码、生成的产物和类型定义。
  4. 官方文档。

何时应用

在以下场景使用此技能:

  • 创建可部署到 Prisma Compute 的新应用
  • 将现有 TypeScript 应用部署到 Prisma Compute
  • 创建或更新类型化的 prisma.compute.ts 部署配置
  • 判断框架是否已就绪可部署到 Compute
  • 调试 create-prisma --deploy、compute:deploy 或 app deploy
  • 管理 Compute 应用日志、部署、环境变量和域名,以及列出平台分支(branch list;没有创建/删除分支的命令)
  • 检查 GitHub/Console 构建日志和 GitHub 推送部署状态
  • 使用浏览器认证、多个已存储工作空间或 Prisma 服务令牌执行非交互式部署
  • 切换、选择、列出或注销 @prisma/cli 的本地 Prisma Platform 工作空间
  • 使用 @prisma/cli feedback 发送关于无法解决的 Compute CLI 故障的反馈
  • 使用 @prisma/compute-sdk 或 Management API 集成进行程序化部署

决策树

  1. 现有项目部署或重新部署: 阅读 references/app-deploy-cli.md。

  2. 类型化 Compute 配置、Monorepo、部署目标、应用根目录或构建/环境默认值: 阅读 references/compute-config.md。

  3. 特定框架的构建/运行时工作: 阅读 references/frameworks.md。

  4. 从脚手架创建新项目: 阅读 references/create-prisma.md。

  5. 程序化部署、SDK、API 或底层应用/部署概念: 阅读 references/sdk-api.md。

  6. 构建、认证、环境、部署或运行时故障: 阅读 references/troubleshooting.md。

按优先级排序的规则

优先级分类影响前缀
1命令验证严重verify-
2认证和工作空间选择严重auth-
3框架就绪性严重framework-
4运行时主机和端口绑定严重runtime-
5类型化 Compute 配置高config-
6分支、环境和数据库连接高env-
7部署操作高deploy-
8SDK 和 API 自动化中sdk-

快速规则

1. 命令验证

  • verify-help-first - 工作时使用 CLI 帮助输出来确认命令语法。
  • verify-prisma-vs-platform-cli - 不要假设 ORM CLI 中存在 prisma app deploy;检查任务是应该使用 @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 中,当存在 prisma.compute.ts 时,CLI 应用/项目状态存储在附近的 .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 就绪性检查监听端口;仅回环监听器可能看起来已就绪,但公共入口无法访问它。
  • runtime-respond-within-60s - 入口给应用 60 秒开始响应,然后返回 504 Gateway Time-out 并取消请求。设计处理程序先回答,然后在 waitUntil 或队列中运行较长时间的工作,绝不在请求内部执行。

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 - 将可复用的部署默认值放在带有 defineComputeConfig 的 prisma.compute.ts 中,而不是 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 - App show/open/logs/list-deploys/promote/rollback/remove 和域名命令也可以接受来自 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() 而不是依赖异常。
  • sdk-snapshot-detection - 使用 detectComputeApp 处理未检出到磁盘的仓库快照;自行枚举工作空间,并对每个候选应用根目录调用一次。

首选工作流

  1. 检查项目:包管理器、模板/框架、package.json 脚本、Prisma 版本、Prisma 客户端位置、prisma.compute.ts 和现有的 compute:deploy。
  2. 验证实际使用包的 CLI 帮助输出。
  3. 在项目/应用变更前验证认证上下文:auth whoami --json,当可能存在多个本地会话时,auth workspace list --json。
  4. 选择路径:
    • 现有应用部署:使用配置支持的目标(如果存在)、生成的 compute:deploy 或 @prisma/cli app build/run/deploy 标志
    • 新应用脚手架:使用 create-prisma,然后使用生成的 compute:deploy 或 @prisma/cli app deploy
    • 底层

…

[已截断以进行翻译]

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

prisma/prisma-cli

Prisma ORM CLI commands reference covering init, generate, migrate, db, dev, studio, validate, format, debug, and mcp. Use for ORM/database CLI workflows, not Prisma Compute app deployment. For Prisma Compute, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, apps, deployments, logs, or domains, use the `prisma-compute` skill instead. Triggers on "prisma init", "prisma generate", "prisma migrate", "prisma db", "prisma studio", "prisma mcp".

prisma/prisma-client-api

Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".

prisma/prisma-database-setup

Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".

prisma/prisma-driver-adapter-implementation

Required reference for Prisma v7 driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter/Transaction interfaces. Contains critical contract details not inferable from code examples — including the transaction lifecycle protocol, error mapping requirements, and verification checklist. Existing implementations do not replace this skill.

prisma/prisma-mongodb-upgrade

Decision and migration guide for Prisma ORM MongoDB projects on v6, which have no upgrade path to v7. Use when a MongoDB project asks about upgrading Prisma, when "upgrade to prisma 7" comes up in a project with provider = "mongodb", or when evaluating a move to Prisma Next. Triggers on "upgrade prisma mongodb", "prisma 7 mongodb", "mongodb prisma migration", "prisma next mongodb".

prisma/prisma-postgres

Prisma Postgres setup and operations guidance across Console, create-db CLI, Management API, and Management API SDK. Use when creating Prisma Postgres databases, working in Prisma Console, provisioning with create-db/create-pg/create-postgres, or integrating programmatic provisioning with service tokens or OAuth.

prisma/prisma-postgres-setup

Set up a new Prisma Postgres database and connect it to a local project using the Management API. Use when asked to "set up a database", "create a Prisma Postgres project", "get a connection string", "connect my app to Prisma Postgres", or "provision a database".

prisma/prisma-upgrade-v7

Complete migration guide from Prisma ORM v6 to v7 covering all breaking changes. Use when upgrading Prisma versions, encountering v7 errors, or migrating existing projects. Triggers on "upgrade to prisma 7", "prisma 7 migration", "prisma-client generator", "driver adapter required".

相关技能