Postgres NestJS Prisma 迁移 - 数据库错误代码:23502 关系列包含空值
Postgres NestJS Prisma migration - Database error code: 23502 column of relation contains null values
我更新了我的 Prisma ORM 数据库模型,向 'invitation' table.
添加了两个字段 'ahash' 和 'sAddress'
table已经包含6行数据。
当我尝试将新更改迁移到 Postgresql 数据库时,出现错误 Database error code: 23502. ERROR: column "aHash" of relation "Invitation" contains null values.
如何处理空值并将模型更新顺利迁移到数据库中?
请给我一个分步说明。我是 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 个 rows/records,它们并不存在。
如果您想向现有数据库添加新列而不导致数据丢失,您需要确保新的 columns/field 是可选的。这可以在 Prisma 中通过使用 ?
.
标记字段类型来完成
如果您需要必填字段,可以分三步完成:
- 首先在您的 Prisma 架构中创建新的
ahash
和 sAddress
字段作为可选字段,然后 运行 迁移。
- 运行 用于更新所有现有记录的脚本,以便它们具有
ahash
和 sAddress
字段的值。
- 在您的 Prisma 架构中将这两个字段标记为必填字段并运行 迁移。
在第 3 步中,您将不再收到错误,因为 none 条记录包含 ahash
和 sAddress
字段的 null
值。
我更新了我的 Prisma ORM 数据库模型,向 'invitation' table.
添加了两个字段 'ahash' 和 'sAddress'table已经包含6行数据。
当我尝试将新更改迁移到 Postgresql 数据库时,出现错误 Database error code: 23502. ERROR: column "aHash" of relation "Invitation" contains null values.
如何处理空值并将模型更新顺利迁移到数据库中?
请给我一个分步说明。我是 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 个 rows/records,它们并不存在。
如果您想向现有数据库添加新列而不导致数据丢失,您需要确保新的 columns/field 是可选的。这可以在 Prisma 中通过使用 ?
.
如果您需要必填字段,可以分三步完成:
- 首先在您的 Prisma 架构中创建新的
ahash
和sAddress
字段作为可选字段,然后 运行 迁移。 - 运行 用于更新所有现有记录的脚本,以便它们具有
ahash
和sAddress
字段的值。 - 在您的 Prisma 架构中将这两个字段标记为必填字段并运行 迁移。
在第 3 步中,您将不再收到错误,因为 none 条记录包含 ahash
和 sAddress
字段的 null
值。