用途
prisma migrate diff 是 Prisma 提供的命令行功能,用于比较数据库 schema 并生成差异。其核心作用是找出两个 schema 来源之间的区别,并将差异以摘要或 SQL 脚本的形式输出。
主要能力
该命令会比较两个来源(通过 --from-... 和 --to-... 指定),来源可以是以下几种类型:
- 空状态(empty)
- Schema 文件(schema)
- 迁移目录(migrations)
- 数据库 URL(url)或已配置的数据源(config-datasource)
输出结果支持两种形式:默认输出人类可读的摘要,或通过 --script 输出 SQL 脚本到标准输出。
使用方式
命令格式为:
prisma migrate diff [options]
支持的主要选项:
--script:将 SQL 脚本渲染到 stdout。--exit-code:检测到变更时退出码为 2,无变更时为 0,出错时为 1。--config:指定 Prisma 配置文件的路径。
来源参数必须提供一个 from 和一个 to,可用的参数包括:
--from-empty,--to-empty--from-schema <path>,--to-schema <path>--from-migrations <path>,--to-migrations <path>--from-url <url>,--to-url <url>--from-config-datasource,--to-config-datasource(使用 prisma.config.ts)
示例
为 schema 变更生成 SQL(比较当前生产数据库与本地 schema):
prisma migrate diff \
--from-url "$PROD_DB_URL" \
--to-schema ./prisma/schema.prisma \
--script
审查待处理的迁移(比较数据库状态与迁移目录):
prisma migrate diff \
--from-config-datasource \
--to-migrations ./prisma/migrations
创建基线迁移(比较空状态与当前 schema):
prisma migrate diff \
--from-empty \
--to-schema ./prisma/schema.prisma \
--script > prisma/migrations/0_init/migration.sql
检查漂移(CI 场景,检查数据库是否与 schema 一致):
prisma migrate diff \
--from-config-datasource \
--to-schema ./prisma/schema.prisma \
--exit-code
适用场景
- 前向生成迁移:在不使用 migrate dev 的情况下创建 SQL。
- 漂移检测:检查数据库是否处于同步状态。
- 基线化:基于已有数据库创建初始迁移。
- 调试:理解 migrate dev 将会执行什么操作。
限制
资料中未提供关于平台支持、定价或性能方面的额外限制说明。