- Published on
Prisma 迁移文件丢失怎么办
- Authors
- Name
- Duck
如果你的数据库中已经有数据,但 _prisma_migrations 表是空的,并且本地的迁移文件也丢失了,你可以通过“基线(Baselining)”的方式让 Prisma 重新建立迁移历史,而不会丢失现有数据。具体步骤如下:
- 创建迁移目录和初始迁移文件夹
mkdir -p prisma/migrations/0_init
- 使用 prisma migrate diff 生成当前数据库结构的迁移 SQL
npx prisma migrate diff --from-empty --to-schema-datamodel prisma/schema.prisma --script > prisma/migrations/0_init/migration.sql
这一步会根据你当前的 schema.prisma 和数据库实际结构生成一份 SQL 脚本。
- (可选)检查生成的 migration.sql,确保没有破坏性操作。
用 prisma migrate resolve 标记这次迁移为已应用
npx prisma migrate resolve --applied 0_init
这样会把 0_init 这条迁移记录写入 _prisma_migrations 表,但不会对数据库做实际更改。
完成上述步骤后,Prisma 就会认为你的数据库已经应用了这次迁移。之后你可以正常使用 prisma migrate dev 进行后续的 schema 变更和迁移管理了。