我更新了我的Prisma ORM数据库模型,在' invite '表中添加了两个字段'ahash'和'sAddress'。
表中已经包含了6行数据
当我尝试将新更改迁移到Postgresql数据库时,我得到错误Database error code: 23502. ERROR: column "aHash" of relation "Invitation" contains null values.
我如何满足null值并将模型更新顺利迁移到数据库?
请给我一个分步账目。我是Prisma迁移的新手。提前感谢!
Prisma邀请模型如下图所示。
model Invitation {
id String @id @db.Uuid
workId String @db.Uuid
work Work @relation(fields: [workId], references: [id])
status RequestStatus
coId String @db.Uuid
oSignature String
note String
aHash String
sAddress String
createdAt DateTime
respondedAt DateTime
}
这里的问题是ahash
和sAddress
都是必填字段。但是,对于数据库中现有的6行/记录,它们不存在。
如果要向现有数据库添加新列而不造成数据丢失,则需要确保新列/字段是可选的。这可以在Prisma中通过用?
标记字段的类型来完成。
如果您需要该字段为强制性的,您可以分三个步骤完成:
- 首先在prism模式中创建新的
ahash
和sAddress
字段作为可选字段,然后运行迁移。 - 运行脚本更新所有现有记录,使它们具有
ahash
和sAddress
字段的值。 - 在你的Prisma模式中将这两个字段都标记为必填,然后运行迁移。
在步骤3中,您将不再得到错误,因为没有记录包含ahash
和sAddress
字段的null
值。