From 5253c3ea041ca17830445d64794306598a508e3a Mon Sep 17 00:00:00 2001 From: Timshel Date: Thu, 15 Oct 2026 12:07:23 +0200 Subject: [PATCH] Sends dynamic drop of FK constraint --- .../2026-06-18-120000_add_sends_emails/up.sql | 31 +++---------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/migrations/mysql/2026-06-18-120000_add_sends_emails/up.sql b/migrations/mysql/2026-06-18-120000_add_sends_emails/up.sql index 299c9093..3de9af59 100644 --- a/migrations/mysql/2026-06-18-120000_add_sends_emails/up.sql +++ b/migrations/mysql/2026-06-18-120000_add_sends_emails/up.sql @@ -16,34 +16,13 @@ CREATE TABLE sends_otp ( DELETE FROM sends where user_uuid IS NULL; UPDATE sends SET hide_email = false WHERE hide_email IS NULL; -SELECT if ( - EXISTS( - SELECT CONSTRAINT_NAME FROM information_schema.table_constraints - WHERE TABLE_SCHEMA = DATABASE() - AND TABLE_NAME = 'sends' - AND CONSTRAINT_TYPE = 'FOREIGN KEY' - AND CONSTRAINT_NAME = 'sends_ibfk_2' - ) - ,'ALTER TABLE sends DROP FOREIGN KEY `sends_ibfk_2`' - ,'SELECT "info: FK sends_ibfk_2 does not exist."' -) INTO @drop_stmt; +SELECT CONCAT('ALTER TABLE sends DROP FOREIGN KEY `', constraint_name, '`') INTO @drop_stmt + FROM information_schema.key_column_usage + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'sends' + AND COLUMN_NAME = 'organization_uuid'; PREPARE drop_stmt FROM @drop_stmt; EXECUTE drop_stmt; - -SELECT if ( - EXISTS( - SELECT CONSTRAINT_NAME FROM information_schema.table_constraints - WHERE TABLE_SCHEMA = DATABASE() - AND TABLE_NAME = 'sends' - AND CONSTRAINT_TYPE = 'FOREIGN KEY' - AND CONSTRAINT_NAME = '2' - ) - ,'ALTER TABLE sends DROP FOREIGN KEY `2`' - ,'SELECT "info: FK sends 2 does not exist."' -) INTO @drop_stmt; -PREPARE drop_stmt FROM @drop_stmt; -EXECUTE drop_stmt; - DEALLOCATE PREPARE drop_stmt; ALTER TABLE sends DROP COLUMN organization_uuid;