如何删除具有关系的项目?
How can I delete items with relations?
我用的是prisma2,不知道怎么删除和其他机型有关系的项目
这是我的模型。
model User {
id String @default(cuid()) @id
email String @unique
password String
name String
teams Team[]
memberships Membership[]
}
model Team {
id String @default(cuid()) @id
name String
founder User?
memberships Membership[]
}
model Membership {
id String @default(cuid()) @id
class String
owner User
team Team
}
用户-团队是 1:n 关系。
团队成员关系是 1:n 关系。
我想删除一个团队。
我已经试过了。
t.list.field("deleteTeam", {
type: "Team",
args: {
teamid: idArg()
},
resolve: (_, { teamid }, ctx) => {
return ctx.photon.teams.deleteMany({
where: { id: teamid }
});
}
});
但它不起作用,因为它违反了关系。
如何同时断开所有关系来删除团队?
具有依赖关系的删除通常需要指定级联删除。
根据您的模型,我认为您需要更新您的 graphql 架构以处理 SET_NULL
上的 CASCADE
关系 onDelete
。
我知道在其他系统中 8base there is a force: Boolean
flag that can be specified solve this. However, here is the Prisma docs section for your problem: https://prisma-docs.netlify.com/docs/1.4/reference/prisma-api/concepts-utee3eiquo/#cascading-deletes
我用的是prisma2,不知道怎么删除和其他机型有关系的项目
这是我的模型。
model User {
id String @default(cuid()) @id
email String @unique
password String
name String
teams Team[]
memberships Membership[]
}
model Team {
id String @default(cuid()) @id
name String
founder User?
memberships Membership[]
}
model Membership {
id String @default(cuid()) @id
class String
owner User
team Team
}
用户-团队是 1:n 关系。 团队成员关系是 1:n 关系。
我想删除一个团队。
我已经试过了。
t.list.field("deleteTeam", {
type: "Team",
args: {
teamid: idArg()
},
resolve: (_, { teamid }, ctx) => {
return ctx.photon.teams.deleteMany({
where: { id: teamid }
});
}
});
但它不起作用,因为它违反了关系。
如何同时断开所有关系来删除团队?
具有依赖关系的删除通常需要指定级联删除。
根据您的模型,我认为您需要更新您的 graphql 架构以处理 SET_NULL
上的 CASCADE
关系 onDelete
。
我知道在其他系统中 8base there is a force: Boolean
flag that can be specified solve this. However, here is the Prisma docs section for your problem: https://prisma-docs.netlify.com/docs/1.4/reference/prisma-api/concepts-utee3eiquo/#cascading-deletes