Prisma CLI

prisma init

在当前目录中初始化一个全新的 Prisma ORM 项目。

circle-exclamation

注意

参数
必填
描述
默认值

--datasource-provider

指定数据源提供者(如 postgresql, mysql, sqlite, sqlserver, mongodb, cockroachdb, prisma+postgres

postgresql

--db

等价于 --datasource-provider prisma+postgres,创建一个新的 Prisma Postgres 实例(需登录 Prisma Data Platform)

--prompt--vibe

根据自然语言提示生成 schema 并部署到新 Prisma Postgres 实例(需认证)

--url

自定义数据库连接 URL

--generator-provider

指定生成器提供者

prisma-client-js

--preview-feature

启用预览功能(可多次使用)

--output

指定生成客户端的输出路径

../generated/prisma

--with-model

在初始 schema 中添加一个简单的 User 模型(v5.14.0 起支持)

示例:

prisma init
prisma init --datasource-provider sqlite
prisma init --db
prisma init --prompt "Simple habit tracker application"
prisma init --url mysql://user:password@localhost:3306/mydb

执行后会生成:

  • prisma/schema.prisma

  • .env(含 DATABASE_URL

  • .gitignore(忽略敏感文件)

prisma generate

根据 schema.prisma 中定义的 generator 和数据模型生成资源(如 Prisma Client)。

选项

选项
描述
备注

--data-proxy

为 Prisma Accelerate 生成客户端(已弃用

v5.2.0 起不推荐

--accelerate

同上(已弃用

推荐改用 --no-engine

--no-engine

生成无引擎的客户端(适用于 Serverless/Edge)

✅ 推荐方式

--no-hints

不显示使用提示、调查或横幅

v5.16.0+

--allow-no-models

允许在无模型时生成客户端

--watch

监听 schema 变化并自动重新生成

已标记为废弃(但仍可用)

参数

参数
描述
默认值

--schema

指定 schema 文件路径

./prisma/schema.prisma

--generator

指定要运行的生成器(可多次指定)

所有生成器

示例:

prisma validate

验证 schema.prisma 文件的语法是否合法。--schema指定 schema 路径

prisma format

格式化并验证 schema.prisma 文件,自动保存更改。--check:仅检查是否已格式化(用于 CI,若未格式化则失败)

prisma debug

打印调试信息(用于提交 bug 报告)。需 Prisma v5.6.0 或更高版本。

prisma dev(本地开发数据库)

启动一个本地 Prisma Postgres 数据库实例,用于开发和测试。

参数

参数
简写
描述
默认值

--name

-n

指定数据库实例名称

default

--port

-p

HTTP 服务端口

51213

--db-port

-P

数据库 TCP 端口

51214

--shadow-db-port

影子数据库端口

51215

--debug

启用调试日志

false

子命令:

  • prisma dev stop <glob>:停止指定实例(如 mydb*

  • prisma dev rm <glob>:彻底删除实例数据

数据库操作(prisma db

db pull

从现有数据库反向生成 Prisma 模型。

选项:

  • --force:强制覆盖(忽略手动修改)

  • --print:仅打印结果,不写入文件

db push

将 Prisma schema 直接推送到数据库(不使用迁移),适合原型开发。

选项:

  • --skip-generate:跳过生成客户端

  • --force-reset:重置数据库后再应用 schema

  • --accept-data-loss:接受可能的数据丢失

db seed

运行种子脚本(需在 package.json 中配置 prisma.seed)。

db execute

直接执行 SQL 脚本(绕过 Prisma 迁移系统)。❌ 不支持 MongoDB

必须指定以下之一作为数据源:

  • --url <连接字符串>

  • --schema <schema路径>

必须指定以下之一作为脚本来源:

  • --file <SQL文件路径>

  • --stdin(从标准输入读取)

示例:

Prisma Migrate(迁移管理)

triangle-exclamation

注意

migrate dev

开发环境迁移命令:

  • 检测 schema 漂移

  • 应用未执行的迁移

  • 根据 schema 变化生成新迁移

  • 应用到开发数据库

  • 生成 Prisma Client

选项:

  • --create-only:仅创建迁移,不应用

  • --name / -n:指定迁移名称

  • --skip-seed / --skip-generate

migrate reset

重置开发数据库(删除并重建 + 重新应用所有迁移 + 运行 seed)。

选项:

  • --force:跳过确认提示

🔒 AI 安全防护:当检测到由 AI 助手(如 Cursor、Claude、Qwen 等)调用 migrate reset --force 时,Prisma 会阻止执行,并要求用户显式确认(通过设置 PRISMA_USER_CONSENT_FOR_DANGEROUS_AI_ACTION 环境变量)。

migrate deploy

在生产环境中应用所有待处理迁移(不检查漂移,不生成客户端)。

migrate resolve

解决生产环境中迁移失败的问题(标记为已应用或已回滚)。

migrate status

检查本地迁移历史与数据库中 _prisma_migrations 表的状态是否一致。

migrate diff

比较两个 schema 源之间的差异,输出人类可读摘要或 SQL 脚本。

源类型(必须指定 --from-xxx--to-xxx):

  • --from-url / --to-url

  • --from-migrations / --to-migrations

  • --from-schema-datamodel / --to-schema-datamodel

  • --from-empty / --to-empty

其他选项:

  • --script:输出 SQL 脚本

  • --output / -o:写入文件

  • --exit-code:根据是否有差异返回不同退出码

示例:

prisma studio

启动交互式数据管理 Web 界面(默认端口 5555)。

选项:

  • -p, --port:指定端口

  • -b, --browser:指定浏览器(如 firefox,或 none 禁用自动打开)

package.json 配置项

指定 schema 路径(v2.7.0+)

指定 seed 命令(v3.0.1+)

代理支持

Prisma CLI 支持通过环境变量配置 HTTP/HTTPS 代理:

  • HTTP_PROXYhttp_proxy

  • HTTPS_PROXYhttps_proxy

例如:

npx create-db@latest

快速创建一个临时 Prisma Postgres 数据库(24 小时有效,可转为永久)。

别名:create-pgcreate-postgres

最后更新于