用途
prisma migrate resolve 是 Prisma CLI 提供的迁移恢复工具,用于解决数据库迁移相关的问题,例如迁移失败或对已有数据库进行基线化(baselining)。它的核心作用是更新 _prisma_migrations 表,手动改变某条迁移的状态。
命令形式
prisma migrate resolve [options]
主要能力
该命令通过修改 _prisma_migrations 表中的记录,手动调整迁移状态,属于恢复类工具。使用时必须且只能提供 --applied 或 --rolled-back 其中一个选项。
选项
| 选项 | 说明 |
|---|---|
| --applied <name> | 将迁移标记为已应用(成功) |
| --rolled-back <name> | 将迁移标记为已回滚(忽略/失败) |
| --schema | schema 文件的路径 |
| --config | Prisma 配置文件的自定义路径 |
使用方式与示例
标记为已应用(基线化)
如果已有现成的表,希望在不运行 SQL 的情况下初始化迁移:
prisma migrate resolve --applied 20240101000000_initial_migration
这相当于告诉 Prisma“假定这条迁移已经运行过”。
标记为已回滚(修复失败)
如果某条迁移失败(例如语法错误),并且你已修复 SQL 或希望重试:
prisma migrate resolve --rolled-back 20240115120000_failed_migration
这相当于告诉 Prisma“忘记这次迁移运行,让我重新尝试应用它”。
适用场景
- 基线化:在现有生产数据库上采用 Prisma Migrate。
- 迁移失败:从生产环境中 migrate deploy 失败的情况中恢复。
- 热修复:协调手动进行的数据库变更(较少见)。
限制
使用时必须且只能提供 --applied 或 --rolled-back 其中一个选项。该命令是手动恢复工具,会直接修改 _prisma_migrations 表的状态,应谨慎使用。