SuperAPI AI 工具集

prisma-cli-migrate-diff

编程与开发

查看项目

更新于 10-16 04:07

技能介绍

用途

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 将会执行什么操作。

限制

资料中未提供关于平台支持、定价或性能方面的额外限制说明。