-
Hi! I'm trying to delete a "project" row but get a warning for Foreign key constraints. This only happened after I added the member model as I was previously connecting users directly to the project model, this is because I'd like to add a permission system and other things on a per user basis. schema.prisma model User {
id Int @id @unique @default(autoincrement())
email String @unique
projects Member[] @relation("user_projects")
owner Project[] @relation("project_owner")
invites Invite[] @relation("invitee")
}
model Project {
id Int @id @unique @default(autoincrement())
name String @default("Unnamed Project")
members Member[] @relation("project_members")
invites Invite[] @relation("project_invites")
apps App[] @relation("project_apps")
owner User @relation("project_owner", fields: [ownerID], references: [id])
ownerID Int
}
model Invite {
id Int @id @unique @default(autoincrement())
invitee User @relation("invitee", fields: [inviteeID], references: [id])
inviteeID Int
project Project @relation("project_invites", fields: [projectID], references: [id])
projectID Int
email String
}
model Member {
id Int @id @unique @default(autoincrement())
project Project @relation("project_members", fields: [projectID], references: [id])
projectID Int
user User @relation("user_projects", fields: [userID], references: [id])
userID Int
}
model App {
id Int @id @unique @default(autoincrement())
name String
project Project @relation("project_apps", fields: [projectID], references: [id])
projectID Int
} This is how I query it: await prisma.project.delete({
where: {
id: parseInt(req.params.project)
},
}) output:
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
This might help: https://www.prisma.io/docs/concepts/components/prisma-schema/relations/referential-actions |
Beta Was this translation helpful? Give feedback.
-
I would like to add, I'm currently at a point where I'm still learning how to implement Prisma to my nestjs server project. Here is my schema: model posts {
id String @id @default(uuid()) @db.Uuid
userId String @db.Uuid
dateCreated DateTime @default(now())
dateRemoved DateTime?
content String
embed Json?
attachments Json?
likes Int
user users @relation(fields: [userId], references: [id])
}
model users {
id String @id @default(uuid()) @db.Uuid
username String
password String
status String
dateCreated DateTime @default(now())
dateRemoved DateTime?
posts posts[]
} And the error I got:
Pardon me for the lack of naming conventions and stuff. lol |
Beta Was this translation helpful? Give feedback.
This might help: https://www.prisma.io/docs/concepts/components/prisma-schema/relations/referential-actions