PRISMA: Ricezione di errore di tipo sulla clausola where nel metodo di aggiornamento
Dispongo di un errore di libreria ORM Prisma specifico per il quale ho bisogno di aiuto.
Ho creato una migrazione e l'ho inviata a un db postgres.
Ho generato il modello client per Prisma e sono in grado di trovare Tutto e inserire i dati utilizzando il metodo di creazione.
Dove ho problemi è il metodo di aggiornamento.
Ecco il mio codice
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)
})
Ricevo il seguente errore che mi fa pensare che il client non stia trovando un tipo "titolo" quando utilizza l'argomento where.
app.ts: 65: 14 - errore TS2322: digita "{titolo: stringa; } "non è assegnabile al tipo" ArticleWhereUniqueInput ". Il valore letterale oggetto può specificare solo proprietà note e "title" non esiste nel tipo "ArticleWhereUniqueInput".
65 dove: {title: req.params.title}, ~~~~~~~~~~~~~~~~~~~~~~~
node_modules / .prisma / client / index.d.ts: 784: 3 784 dove: ArticleWhereUniqueInput ~~~~~ Il tipo previsto proviene dalla proprietà 'dove' che è dichiarato qui sul tipo 'Subset <ArticleUpdateArgs, ArticleUpdateArgs>'
Qualcun altro ha avuto questo problema? Ho provato a esaminare il database solo per assicurarmi che il database fosse acquisito esattamente com'è, con i campi del titolo e del contenuto e quindi generato di nuovo il client.
Molte grazie James
Risposte
Ho trovato la risposta: la risposta al post era una risposta di Antonie
I campi in
- dove
deve essere unico.
Se puoi creare un campo, diciamo date @unique (date: DateTime! @Unique), e usalo per il tuo dove nell'upsert, penso che funzionerebbe (testato sul mio locale).