[英]Prisma update operation failing in validator; using generated `UncheckedUpdateInput` type instead of `UpdateInput` type
我正在嘗試執行更新操作:
const specialItem = await db.specialItem.update({ where: query, data: formattedUpdate })
該語句中的值formattedUpdate
看起來像這樣:
{
item_name: null,
drink_type: 'Wine',
price: 800,
bar: {
connect: {
id: '4486bbc3-5ff8-47c8-99cf-9291c57ebe78'
}
},
event: {
connect: {
id: undefined
}
},
related_item: {
connect: {
id: undefined
}
}
}
此操作在 Prisma 驗證器中失敗並出現以下錯誤:
[1] Unknown arg `bar` in data.bar for type SpecialItemUncheckedUpdateInput. Did you mean `id`? Available args: ...
[1] Unknown arg `event` in data.event for type SpecialItemUncheckedUpdateInput. Did you mean `event_id`? Available args: ...
[1] Unknown arg `related_item` in data.related_item for type SpecialItemUncheckedUpdateInput. Did you mean `related_item_id`? Available args: ...
但是,這些字段絕對在我的模式中:
model SpecialItem {
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
created_at DateTime @default(now()) @db.Timestamptz(3)
event Event? @relation(fields: [event_id], references: [id], onDelete: Cascade)
event_id String? @db.Uuid
bar Bar @relation(fields: [bar_id], references: [id], onDelete: Cascade)
bar_id String @db.Uuid
related_item_id String? @db.Uuid
related_item Item? @relation(fields: [related_item_id], references: [id])
is_recurring Boolean @default(false)
is_inactive Boolean @default(false)
...
}
錯誤提示的可用參數來自生成的 Prisma 類型ModelNameUncheckedUpdateInput
,但是我相信如果它使用生成的 Prisma 類型ModelNameUpdateInput
,此操作將會成功。 未經檢查的版本直接使用 ID,而常規版本使用連接 object 模式。 我更喜歡使用后者。 為什么 Prisma 期望我滿足類型的未檢查版本? 我可以強制驗證器使用常規版本嗎?
有沒有人遇到過這個? 我認為打破我在別處使用的連接模式沒有意義。
使用 Prisma 4.9.0 版。
我試過搜索,ChatGPT,github,閱讀文檔,但沒有抽雪茄。
您能否修改代碼以獲得此結果:
{
item_name: null,
drink_type: 'Wine',
price: 800,
bar: {
connect: {
id: '4486bbc3-5ff8-47c8-99cf-9291c57ebe78'
}
}
}
我不確定,但如果嵌套字段中有undefined
,看起來 Prisma 將使用Unchecked
類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.