【发布时间】:2022-10-25 15:08:02
【问题描述】:
我有这些棱镜模型
model OrderDetail {
id String @id @default(cuid())
orderId String
address String
city String
country String
postalCode String
phone String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
}
model Order {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
userId String
orderItems OrderItem[]
orderDetails OrderDetail[] // cant have no arrays
}
如果我从orderDetails OrderDetail[] 中删除[],我会在OrderDetail 的order @relation 中收到以下类型错误
解析属性“@relation”时出错:关系字段
orderon 型号OrderDetail不得指定onDelete或onUpdate@relation 属性中的参数。您只能在 模型Order上的对面字段orderDetails。从
order @relation中删除onDelete: Cascade后,错误就是这个解析属性“@relation”时出错:关系字段
orderon 型号OrderDetail是必需的。这不再有效,因为它是 无法在数据库级别强制执行此约束。请 将字段类型从Order更改为Order?以解决此问题。我只想在那里建立一对一的关系,而不是一对多。
怎么修?
【问题讨论】:
-
你试过第一个错误建议“你必须只在模型订单上的相反字段订单详细信息上指定它。”?
-
是的,我尝试从
OrderDetail模型中删除order @relation并在Order中添加orderDetails @relation,并且还让它们都添加了相似的结果。
标签: typescript prisma