diff --git a/backend/prisma/migrations/20260811151354_cascade_delete_video_relations/migration.sql b/backend/prisma/migrations/20260811151354_cascade_delete_video_relations/migration.sql new file mode 100644 index 0000000..e197c0e --- /dev/null +++ b/backend/prisma/migrations/20260811151354_cascade_delete_video_relations/migration.sql @@ -0,0 +1,23 @@ +-- DropForeignKey +ALTER TABLE "BulkJobItem" DROP CONSTRAINT "BulkJobItem_videoId_fkey"; + +-- DropForeignKey +ALTER TABLE "LintResult" DROP CONSTRAINT "LintResult_videoId_fkey"; + +-- DropForeignKey +ALTER TABLE "VideoConfig" DROP CONSTRAINT "VideoConfig_videoId_fkey"; + +-- DropForeignKey +ALTER TABLE "VideoPlaylist" DROP CONSTRAINT "VideoPlaylist_videoId_fkey"; + +-- AddForeignKey +ALTER TABLE "VideoConfig" ADD CONSTRAINT "VideoConfig_videoId_fkey" FOREIGN KEY ("videoId") REFERENCES "Video"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "LintResult" ADD CONSTRAINT "LintResult_videoId_fkey" FOREIGN KEY ("videoId") REFERENCES "Video"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "BulkJobItem" ADD CONSTRAINT "BulkJobItem_videoId_fkey" FOREIGN KEY ("videoId") REFERENCES "Video"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "VideoPlaylist" ADD CONSTRAINT "VideoPlaylist_videoId_fkey" FOREIGN KEY ("videoId") REFERENCES "Video"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma index cdf0b52..b0467f0 100644 --- a/backend/prisma/schema.prisma +++ b/backend/prisma/schema.prisma @@ -174,7 +174,7 @@ enum LintStatus { model VideoConfig { id String @id @default(cuid()) videoId String @unique - video Video @relation(fields: [videoId], references: [id]) + video Video @relation(fields: [videoId], references: [id], onDelete: Cascade) templateId String? blockOrder Json blockOverrides Json @@ -312,7 +312,7 @@ model SavedView { model LintResult { id String @id @default(cuid()) videoId String - video Video @relation(fields: [videoId], references: [id]) + video Video @relation(fields: [videoId], references: [id], onDelete: Cascade) ruleCode String severity LintSeverity targetField String? @@ -369,7 +369,7 @@ model BulkJobItem { bulkJobId String bulkJob BulkJob @relation(fields: [bulkJobId], references: [id]) videoId String - video Video @relation(fields: [videoId], references: [id]) + video Video @relation(fields: [videoId], references: [id], onDelete: Cascade) beforeSnapshot Json? afterSnapshot Json? status String @default("pending") @@ -415,7 +415,7 @@ model VideoPlaylist { videoId String playlistId String position Int? - video Video @relation(fields: [videoId], references: [id]) + video Video @relation(fields: [videoId], references: [id], onDelete: Cascade) playlist Playlist @relation(fields: [playlistId], references: [id]) @@id([videoId, playlistId])