fix(prisma): make owner FK migration resilient on MariaDB
This commit is contained in:
@@ -14,9 +14,27 @@ DELETE FROM `Product` WHERE `ownerId` IS NULL;
|
|||||||
ALTER TABLE `Product`
|
ALTER TABLE `Product`
|
||||||
MODIFY COLUMN `ownerId` INT NOT NULL;
|
MODIFY COLUMN `ownerId` INT NOT NULL;
|
||||||
|
|
||||||
-- Steg 4: Uppdatera foreign key constraint till CASCADE (ta bort gammal, lägg till ny)
|
-- Steg 4: Uppdatera foreign key constraint till CASCADE
|
||||||
ALTER TABLE `Product`
|
-- Droppa befintlig FK på ownerId med dynamiskt namn (miljöer kan skilja sig).
|
||||||
DROP FOREIGN KEY IF EXISTS `Product_ownerId_fkey`;
|
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`
|
ALTER TABLE `Product`
|
||||||
ADD CONSTRAINT `Product_ownerId_fkey`
|
ADD CONSTRAINT `Product_ownerId_fkey`
|
||||||
|
|||||||
Reference in New Issue
Block a user