fix(prisma): make owner FK migration resilient on MariaDB

This commit is contained in:
Nils-Johan Gynther
2026-05-02 19:22:53 +02:00
parent b272ab9faf
commit aab0a19d1c
@@ -14,9 +14,27 @@ DELETE FROM `Product` WHERE `ownerId` IS NULL;
ALTER TABLE `Product`
MODIFY COLUMN `ownerId` INT NOT NULL;
-- Steg 4: Uppdatera foreign key constraint till CASCADE (ta bort gammal, lägg till ny)
ALTER TABLE `Product`
DROP FOREIGN KEY IF EXISTS `Product_ownerId_fkey`;
-- Steg 4: Uppdatera foreign key constraint till CASCADE
-- Droppa befintlig FK på ownerId med dynamiskt namn (miljöer kan skilja sig).
SET @fk_name := (
SELECT kcu.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
WHERE kcu.TABLE_SCHEMA = DATABASE()
AND kcu.TABLE_NAME = 'Product'
AND kcu.COLUMN_NAME = 'ownerId'
AND kcu.REFERENCED_TABLE_NAME = 'User'
LIMIT 1
);
SET @drop_fk_sql := IF(
@fk_name IS NULL,
'SELECT 1',
CONCAT('ALTER TABLE `Product` DROP FOREIGN KEY `', @fk_name, '`')
);
PREPARE stmt_drop_fk FROM @drop_fk_sql;
EXECUTE stmt_drop_fk;
DEALLOCATE PREPARE stmt_drop_fk;
ALTER TABLE `Product`
ADD CONSTRAINT `Product_ownerId_fkey`