diff --git a/backend/prisma/migrations/20260502160000_product_owner_required/migration.sql b/backend/prisma/migrations/20260502160000_product_owner_required/migration.sql index 75305722..0998b1a2 100644 --- a/backend/prisma/migrations/20260502160000_product_owner_required/migration.sql +++ b/backend/prisma/migrations/20260502160000_product_owner_required/migration.sql @@ -1,13 +1,20 @@ --- Steg 1: Ta bort alla produkter utan ägare (globala seed-produkter) --- Detta tar automatiskt bort relaterade rader via ON DELETE CASCADE --- för: InventoryItem, PantryItem, ReceiptAlias, ProductTag, Nutrition, UserProduct +-- Steg 1: Ta bort beroenden som inte har ON DELETE CASCADE +-- RecipeIngredient -> Product saknar cascade och måste rensas manuellt först. +DELETE ri +FROM `RecipeIngredient` ri +JOIN `Product` p ON p.`id` = ri.`productId` +WHERE p.`ownerId` IS NULL; + +-- Steg 2: Ta bort alla produkter utan ägare (globala seed-produkter) +-- Relaterade rader med ON DELETE CASCADE tas bort automatiskt +-- (InventoryItem, PantryItem, ReceiptAlias, ProductTag, Nutrition, UserProduct) DELETE FROM `Product` WHERE `ownerId` IS NULL; --- Steg 2: Gör ownerId obligatoriskt +-- Steg 3: Gör ownerId obligatoriskt ALTER TABLE `Product` MODIFY COLUMN `ownerId` INT NOT NULL; --- Steg 3: Uppdatera foreign key constraint till CASCADE (ta bort gammal, lägg till ny) +-- 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`;