使用 Prisma.js 对数据库进行更改,而无需重置整个内容

问题描述

如何使用 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 认为更改正在中断,它仍会导致数据重置。