PRISMA:更新方法中的 where 子句出现类型错误

Jam*_*hon 4 orm prisma

有一个特定的 Prisma ORM 库错误,我需要帮助解决。

我创建了一个迁移并将其推送到 postgres 数据库。

我已经为 Prisma 生成了客户端模型,并且能够使用 create 方法查找All 并插入数据。

我遇到麻烦的是更新方法。

这是我的代码

app.post("/articles/:title", async (req: Request, res: Response) => {
  const article = await prisma.article.update({
    where: { title: req.params.title },
    data: { title: req.body.title, content: req.body.content },
  })
  res.send('The article was posted sucessfully.' + article)
})
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,这让我认为客户端在使用 where 参数时没有找到类型“标题”。

app.ts:65:14 - 错误 TS2322: 类型 '{ title: string; }' 不可分配给类型“ArticleWhereUniqueInput”。对象文字只能指定已知属性,并且“ArticleWhereUniqueInput”类型中不存在“title”。

65 其中: { title: req.params.title }, ~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.prisma/client/index.d.ts:784:3 784 其中:ArticleWhereUniqueInput ~~~~~ 预期类型来自属性“where”,该属性在类型“Subset<ArticleUpdateArgs, ArticleUpdateArgs>”上声明

其他人遇到过这个问题吗?我尝试内省数据库,只是为了确保数据库完全按原样捕获,包含标题和内容字段,然后再次生成客户端。

非常感谢詹姆斯

Jam*_*hon 5

找到答案:帖子答案是安东尼的回复

中的字段

  • 在哪里

需要是独一无二的。

如果您可以创建一些字段,例如日期@unique(日期:DateTime!@unique),并将其用于更新插入中的位置,我认为它会起作用(在我的本地进行了测试)。