fix(prisma): delete RecipeIngredient rows before ownerless Product cleanup
This commit is contained in:
@@ -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`;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user