我有这个棱镜模式
model Directory {
id String @id @default(cuid())
name String?
parentDirectoryId String?
userId String
parentDirectory Directory? @relation("parentDirectoryId", fields: [parentDirectoryId], references: [id], onDelete: NoAction, onUpdate: NoAction)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
quizess Quiz[]
subDirectory Directory[] @relation("parentDirectoryId")
@@index([parentDirectoryId])
@@index([userId])
}
背后的逻辑: 我可以有一个位于根目录 (parentDirectoryId = null) 的文件夹,也可以有许多其他目录。
如何删除其中包含目录的目录?
这就是我尝试调用 prisma.delete 时发生的情况:
Invalid
prisma.directory.delete()`调用:
您尝试进行的更改将违反
Directory
和 Directory
模型之间所需的关系“parentDirectoryId”。`
设置onDelete: Cascade、onUpdate: Cascade 不起作用
试试这个:
prisma.directory.update({
data: {
subDirectory: {
disconnect: {
id: directory.id,
}
},
},
})
directory.id
是父目录的id。