问题描述
如何使用 prisma.js
更改数据库而无需重置整个内容?
如果我用过这个命令
npx prisma migrate dev --name role-makeOptional-normalizedname
就我而言,我想将 String
文件中的 String?
更改为 schema.prisma
normalizedname String? @unique @db.VarChar(64)
是否有适当的命令来避免丢失数据?
解决方法
在开发环境中,Prisma Migrate 有时会提示您重置数据库。重置会删除并重新创建数据库,这会导致数据丢失。数据库在以下情况下重置:
- 您明确调用
prisma migrate reset
- 您调用
prisma migrate dev
,Prisma Migrate 会检测到数据库中的漂移或迁移历史记录冲突
我不知道为什么 Prisma 认为您的更改是破坏性的,但可能没有其他方法可以在不丢失数据的情况下进行架构更改。
要重新创建数据库数据,请考虑使用 seeding script
如果您正在制作原型,请考虑使用 db push
command,但如果 Prisma 认为更改正在中断,它仍会导致数据重置。