【问题标题】:Postgres NestJS Prisma migration - Database error code: 23502 column of relation contains null valuesPostgres NestJS Prisma 迁移 - 数据库错误代码:23502 关系列包含空值
【发布时间】:2021-12-06 18:24:47
【问题描述】:

我更新了我的 Prisma ORM 数据库模型,在“邀请”表中添加了另外两个字段“ahash”和“sAddress”。

该表已经包含 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  
}


【问题讨论】:

    标签: postgresql nestjs prisma


    【解决方案1】:

    这里的问题是ahashsAddress 都是必填字段。但是,对于数据库中的 6 条现有行/记录,它们不存在。

    如果您想在现有数据库中添加新列而不导致数据丢失,您需要确保新列/字段是可选的。这可以在 Prisma 中通过使用 ? 标记字段的类型来完成。

    如果您需要该字段为必填项,您可以分三步完成:

    1. 首先在您的 prisma 架构中创建新的 ahashsAddress 字段作为可选字段并运行迁移。
    2. 运行脚本以更新所有现有记录,以便它们具有 ahashsAddress 字段的值。
    3. 在您的 Prisma 架构中将这两个字段标记为必填并运行迁移。

    在第 3 步中,您将不再收到错误消息,因为没有任何记录包含 ahashsAddress 字段的 null 值。

    【讨论】:

      猜你喜欢
      • 2022-11-03
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2015-06-08
      • 2015-04-06
      • 2019-11-20
      相关资源
      最近更新 更多