ПРИЗМА: получение ошибки типа в предложении where в методе обновления

У меня есть конкретная ошибка библиотеки Prisma ORM, с которой мне нужна помощь.

Я создал миграцию и отправил ее в базу данных postgres.

Я создал клиентскую модель для Prisma и могу найти все и вставить данные с помощью метода create.

У меня проблемы с методом обновления.

Вот мой код

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)
})

Я получаю следующую ошибку, которая заставляет меня думать, что клиент не находит тип «title» при использовании аргумента where.

app.ts: 65: 14 - ошибка TS2322: Type '{title: string; } 'не может быть назначен типу' ArticleWhereUniqueInput '. Литерал объекта может указывать только известные свойства, а «title» не существует в типе «ArticleWhereUniqueInput».

65 где: {title: req.params.title}, ~~~~~~~~~~~~~~~~~~~~~~~

node_modules / .prisma / client / index.d.ts: 784: 3 784 где: ArticleWhereUniqueInput ~~~~~ Ожидаемый тип происходит из свойства 'where', которое здесь объявлено для типа 'Subset ‹ArticleUpdateArgs, ArticleUpdateArgs›'

У кого-нибудь еще была эта проблема? Я попытался провести интроспекцию базы данных, чтобы убедиться, что база данных была захвачена точно так же, как есть, с полями заголовка и содержимого, а затем снова сгенерировал клиента.

Большое спасибо Джеймс


person JamesLovesPython    schedule 25.08.2020    source источник


Ответы (1)


Нашел ответ: Сообщение было ответ от Антони

Поля в

  • куда

должен быть уникальным.

Если вы можете создать какое-то поле, скажем, date @unique (date: DateTime! @Unique), и использовать его для вашего where в upsert, я думаю, что это сработает (проверено на моем локальном компьютере).

person JamesLovesPython    schedule 25.08.2020