进阶 www.prisma.io 2026-10-12 01:56:59 · 20 阅读

第13章 Prisma CLI 参考

概述 Prisma CLI 参考 Prisma ORM 自带统一的 Prisma CLI。这一个二进制文件同时包含 ORM 命令以及针对 Prisma Composer、Prisma Compute、Prisma Postgres 和对象存储桶的平台命令。

针对 Prisma ORM 7 用户 Prisma ORM 8 是当前的候选发布版本。Prisma ORM 7 仍受完全支持,其文档位于 /orm/v7,入门路径位于 /v7/getting-started。关于候选版本的含义、最终版本的预计发布时间,以及如何保持在第 7 版本,请参阅《发布状态》。若要了解 Prisma ORM 8 中所有 Prisma ORM 7 API 的新名称,请参阅《来自 Prisma ORM 7》。

Prisma ORM CLI 包含在 prisma 包中。无需安装即可运行: bunx prisma --help bunx prisma contract emit 如果在项目中安装了 prisma,这些命令将简化为普通的 prisma contract emit 等。

若要生成完整的应用程序脚手架,请遵循《使用 PostgreSQL 创建新应用》。该路径会为您创建项目文件和 package 脚本。本 CLI 参考文档针对的是这些脚本所调用的底层命令。

平台命令 平台命令用于管理您的应用所运行的服务、数据库和存储桶。使用 deploy 和 dev,您可以将 Prisma Composer 应用部署到 Prisma Compute 并在本地运行;使用 service 和 git,您可以管理服务、其版本、日志、域名以及仓库连接。使用 postgres,您可以启动和管理 Prisma Postgres 数据库。使用 bucket,您可以创建 blob 存储桶及其访问密钥。auth、project 和 branch 负责处理围绕上述功能的相关账户、项目和分支配置。每个命令组在本节中都有专属页面。部署由 deploy 创建,在设置“推送即部署”后由 git push 触发,或从控制台创建,每次部署都会生成一个服务版本。

常见工作流 平台用户使用平台命令部署应用、创建数据库和配置存储桶,而 ORM 用户则使用 ORM 和迁移命令管理架构、契约和迁移。

部署应用 登录,然后构建并部署一个 Prisma Composer 应用。deploy 在首次运行时创建项目,新项目需要指定区域,这通过 deploy 配置或环境变量 PRISMA_REGION 设置;详见 deploy。 bunx prisma auth login bun run build bunx prisma deploy module.ts 若要每次推送时自动部署,还需使用 git connect 连接仓库并添加部署工作流;详见《推送即部署》。 部署后,可使用 service logs 跟踪部署情况,并使用 service 命令管理部署结果。

创建数据库 bunx prisma postgres create mydb bunx prisma postgres connection create mydb postgres create 会打印一个一次性连接 URL;当您额外需要一个连接 URL 时,可使用 postgres connection create 生成新的。详见 postgres。

创建存储桶 bunx prisma bucket create --name my-bucket bunx prisma bucket key create bucket key create 会打印该密钥的一次性凭证。详见 bucket。

在现有项目中开始 bunx prisma@latest orm init --target postgres --authoring psl bunx prisma contract emit bunx prisma db init --db "$DATABASE_URL" --advance-ref db 当您省略 --db 并让连接来自 prisma.config.ts 时,db init 和 db update 会自行推进名为 db 的 ref。传递 --db 会抑制此行为,因此需添加 --advance-ref db 以保持 ref 最新。若未添加,--db 会将现有的 db ref 保留在原处,后续的迁移计划将从那个过时的契约开始;如果该 ref 从未创建过,一旦磁盘上存在迁移文件,迁移计划会因 MIGRATION.PLAN_ORIGIN_UNKNOWN 错误而拒绝执行。

采用现有数据库 bunx prisma contract infer --db "$DATABASE_URL" --output ./prisma/contract.prisma bunx prisma contract emit bunx prisma db sign --db "$DATABASE_URL" bunx prisma db verify --db "$DATABASE_URL" db sign 还会将 db ref 设置为已签名的契约,以便下一个迁移计划从您采用的数据库开始。若要签名但不移动 ref,请传递 --no-advance-ref。

使用已签入的迁移 bunx prisma contract emit bunx prisma migration plan --name add_users bunx prisma migration status --db "$DATABASE_URL" bunx prisma db migrate --db "$DATABASE_URL" --advance-ref db bunx prisma db verify --db "$DATABASE_URL" 普通的 db migrate 不会移动 ref;--advance-ref db 是让下一个迁移计划保持增量的关键。在部署和 CI 应用环境中应省略此标志,因为仓库的 ref 不应在这些场景下移动。

Agent 技能 Prisma 包附带 agent skills:即教导 AI 编码 agent 已安装版本的命令和 API 的说明。init 一次准备好仓库,而 skills sync 确保已安装的副本与您的包版本保持同步。请在 init 之后安装,使其添加的 prisma dev 依赖项出现在 node_modules 中: bunx --bun prisma@latest init bun install bunx prisma skills sync

其他命令 少数命令尚未拥有专属页面。contract format 就地格式化您的 PSL 契约源,包括通过 prisma7Schema 读取的 Prisma ORM 7 架构;lsp 启动 Prisma ORM 语言服务器(由编辑器生成,非交互式运行;详见《编辑器支持》)。migration 组还包含只读检查命令:migration list(按契约空间列出自磁盘迁移;支持 --space、--ascii、--legend)、migration log(从数据库账本读取执行历史;支持 --db、--utc、--ascii)、migration graph(迁移链;支持 --space、--dot 输出为 Graphviz、--ascii、--legend)以及 migration check [target](检查工件和图完整性;支持 --space)。运行任何这些命令时附加 --help 以获取详细信息。

全局标志 所有命令都接受相同的一组输出、提示和配置标志。它们记录在《全局标志》中。在 GitHub 上编辑 全局标志 被统一 Prisma CLI 中所有命令接受的标志。

评论 (0)