You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prisma迁移状态异常报错P3018、P3008如何在不删数据的情况下修复?

Prisma迁移P3018错误无数据损失修复方案

前置校验

  • 确认当前主库的表结构与修改后的20210819161149_some_migration迁移SQL执行后的预期结构完全一致,无结构差异
  • 提前备份主库的_prisma_migrations表数据,避免操作失误

修复步骤

  1. 计算修改后迁移文件的新校验值
    Prisma迁移校验和为migration.sql文件内容的SHA256哈希值,可通过以下命令计算:
    • Linux/macOS 终端:
      shasum -a 256 prisma/migrations/20210819161149_some_migration/migration.sql | awk '{print $1}'
    • Windows PowerShell:
      Get-FileHash -Path prisma\migrations\20210819161149_some_migration\migration.sql -Algorithm SHA256 | Select-Object -ExpandProperty Hash
  2. 更新主库迁移记录的校验和
    在主库执行SQL语句替换原有校验值:
UPDATE _prisma_migrations 
SET checksum = '步骤1计算得到的SHA256值' 
WHERE migration_name = '20210819161149_some_migration';
  1. 本地开发环境修复(无数据损失)
    如果本地主库有需要保留的业务数据,无需执行重置操作:
  • 参照步骤1、2同样更新本地主库_prisma_migrations表对应记录的校验和
  • 删除prisma目录下的migration_lock.toml文件
  • 直接执行prisma migrate dev即可恢复正常

如果本地无需要保留的业务数据,也可直接执行prisma migrate reset --force快速完成修复。

后续注意事项

  • 已经推送到主分支、已经被其他环境/成员应用过的迁移文件禁止修改,新增结构变更必须新建迁移文件
  • 其他已经拉取过旧迁移文件的开发成员,需要同步执行上述操作更新本地库的迁移校验和,避免重复出现报错

内容的提问来源于stack exchange,提问作者d512

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:30:02