From 4924a616f94f1f35acaeeaac659e1bfcdc1bf0bd Mon Sep 17 00:00:00 2001 From: Brian Cao Date: Mon, 22 Aug 2022 16:00:26 -0700 Subject: [PATCH] cascading deletes mysql --- .../04_remove_cascade_delete/migration.sql | 35 +++++++++++++++++++ db/mysql/schema.prisma | 12 +++---- 2 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 db/mysql/migrations/04_remove_cascade_delete/migration.sql diff --git a/db/mysql/migrations/04_remove_cascade_delete/migration.sql b/db/mysql/migrations/04_remove_cascade_delete/migration.sql new file mode 100644 index 00000000..542784a9 --- /dev/null +++ b/db/mysql/migrations/04_remove_cascade_delete/migration.sql @@ -0,0 +1,35 @@ +-- DropForeignKey +ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_2`; + +-- DropForeignKey +ALTER TABLE `event` DROP FOREIGN KEY `event_ibfk_1`; + +-- DropForeignKey +ALTER TABLE `pageview` DROP FOREIGN KEY `pageview_ibfk_2`; + +-- DropForeignKey +ALTER TABLE `pageview` DROP FOREIGN KEY `pageview_ibfk_1`; + +-- DropForeignKey +ALTER TABLE `session` DROP FOREIGN KEY `session_ibfk_1`; + +-- DropForeignKey +ALTER TABLE `website` DROP FOREIGN KEY `website_ibfk_1`; + +-- AddForeignKey +ALTER TABLE `event` ADD CONSTRAINT `event_session_id_fkey` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `event` ADD CONSTRAINT `event_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `pageview` ADD CONSTRAINT `pageview_session_id_fkey` FOREIGN KEY (`session_id`) REFERENCES `session`(`session_id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `pageview` ADD CONSTRAINT `pageview_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `session` ADD CONSTRAINT `session_website_id_fkey` FOREIGN KEY (`website_id`) REFERENCES `website`(`website_id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `website` ADD CONSTRAINT `website_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `account`(`user_id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/db/mysql/schema.prisma b/db/mysql/schema.prisma index 6ac27e04..3e0093ab 100644 --- a/db/mysql/schema.prisma +++ b/db/mysql/schema.prisma @@ -24,8 +24,8 @@ model event { created_at DateTime? @default(now()) @db.Timestamp(0) url String @db.VarChar(500) event_name String @db.VarChar(50) - session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade, onUpdate: NoAction, map: "event_ibfk_2") - website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade, onUpdate: NoAction, map: "event_ibfk_1") + session session @relation(fields: [session_id], references: [session_id]) + website website @relation(fields: [website_id], references: [website_id]) event_data event_data? @@index([created_at]) @@ -47,8 +47,8 @@ model pageview { created_at DateTime? @default(now()) @db.Timestamp(0) url String @db.VarChar(500) referrer String? @db.VarChar(500) - session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade, onUpdate: NoAction, map: "pageview_ibfk_2") - website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade, onUpdate: NoAction, map: "pageview_ibfk_1") + session session @relation(fields: [session_id], references: [session_id]) + website website @relation(fields: [website_id], references: [website_id]) @@index([created_at]) @@index([session_id]) @@ -69,7 +69,7 @@ model session { screen String? @db.VarChar(11) language String? @db.VarChar(35) country String? @db.Char(2) - website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade, onUpdate: NoAction, map: "session_ibfk_1") + website website @relation(fields: [website_id], references: [website_id]) event event[] pageview pageview[] @@ -85,7 +85,7 @@ model website { domain String? @db.VarChar(500) share_id String? @unique() @db.VarChar(64) created_at DateTime? @default(now()) @db.Timestamp(0) - account account @relation(fields: [user_id], references: [user_id], onDelete: Cascade, onUpdate: NoAction, map: "website_ibfk_1") + account account @relation(fields: [user_id], references: [user_id]) event event[] pageview pageview[] session session[]