Prisma 架构迁移

问题描述 投票:0回答:1

我在学习创建棱镜示意图模型时遇到问题,如下

model User {
  id       Int       @id @default(autoincrement())
  username String
  email    String    @unique
  password String
  orders   Order[]
  products Product[]
}

model Product {
  id          Int     @id @default(autoincrement())
  name        String
  description String
  price       Int
  stock       Int
  userId      Int
  user        User    @relation(fields: [userId], references: [id])
  images      Image[]
  orders      Order[]
}

model Image {
  id        Int     @id @default(autoincrement())
  url       String
  productId Int
  product   Product @relation(fields: [productId], references: [id])
}

model Order {
  id         Int      @id @default(autoincrement())
  quantity   Int
  totalPrice Int
  orderDate  DateTime
  status     String

  userId Int
  user   User @relation(fields: [userId], references: [id])

  productId Int
  product   Product @relation(fields: [productId], references: [id])
}

当我运行命令“npm prisma migrate dev”时,终端中会出现这样的错误消息

画出错误消息

我该怎么办?

我尝试在 YouTube 上进行谷歌搜索并寻找解决方案。但我不明白,我也没有人可以问。

database-design prisma database-schema
1个回答
0
投票

在错误消息中,表示表中当前有两行此迁移将导致更改。问题在于新字段未标记为可为空,因此当更新运行时,需要更新当前数据以确保其新列不为空。这会导致错误,因为 prisma 不知道要在这些框中输入什么内容,但必须输入一些内容,因此会失败。

一些示例,但不是如何解决此问题的详尽列表。

  1. 为架构中的新列提供默认值,示例见此处
  2. 通过删除保留的数据,以便迁移可以运行而无需更新任何行。
  3. 您还可以在架构中将这些字段设置为可为空,以避免引发此错误,上面链接中的示例也是如此。
© www.soinside.com 2019 - 2024. All rights reserved.