prisma 执行命令让删库怎么处理
有的时候使用 npx prisma migrate dev 命令时会让你删除库,就是重置这个库。
举一个场景:
我建立了一个 User表,我需要使用命令 npx prisma migrate dev ,命名first,把这个表初始化到数据库,项目根目录生成了一个 /prisma/migrations/20250522121613_first/migration.sql 的文件,然后我开始用这个表...
没过多久,我觉得这个表的名字和业务不太搭,想改成 OldUser,那么我就把 /prisma/migrations/20250522121613_first/migration.sql 这个文件给删掉了,然后把表名字改成 OldUser,再执行 npx prisma migrate dev,问题出现了, 报错了,说和数据库的记录不符,需要删除数据库...
我真就草了,我就改个表名字,用得着重置数据库吗?
这错误tm到底怎么来的?
原来在初始化User的时候,笔底除了生成 migration.sql 文件,数据库中还生成了一个记录,这个记录是在 _prisma_migrations 这张表内,这张表是在初始化数据库的时候默认创建的,目的就是记录你的每一次表修改,没当你需要修改表的时候,他就会用这个表的记录对比你本地的记录,对不上,他就让你重置!
怎么办?
很简单,本地的记录删除后,把数据库对应的那条记录也删除掉就行了,注意要选对记录,主要就是看 migrations_name 这个字段。