My data model includes the following nodes:
model User {
id Int @id @default(autoincrement())
name String
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
body String
user User @relation(fields: [userId], references: [id])
userId Int
}
I tried to delete one User like this:
async function deleteUser(_, args) {
const { id } = args
return prisma.user.delete({
where: { id: id }
})
}
But it gives an error: ... The change you are trying to make would violate the required relation UserToPost between the User and Post models.
Then how to delete one user? Even I tried to delete the post first then the user but again same error happened.
Looks like your table does not support
CASCADE
deletions andprisma
does not automatically add it for you. You will have to manually update the definition of your table either while migration or after the fact.so basically, alter your table definition.
Refer to these docs on options of configuring relational queries.