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)
|
-- Steg 1: Ta bort beroenden som inte har ON DELETE CASCADE
|
||||||
-- Detta tar automatiskt bort relaterade rader via ON DELETE CASCADE
|
-- RecipeIngredient -> Product saknar cascade och måste rensas manuellt först.
|
||||||
-- för: InventoryItem, PantryItem, ReceiptAlias, ProductTag, Nutrition, UserProduct
|
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;
|
DELETE FROM `Product` WHERE `ownerId` IS NULL;
|
||||||
|
|
||||||
-- Steg 2: Gör ownerId obligatoriskt
|
-- Steg 3: Gör ownerId obligatoriskt
|
||||||
ALTER TABLE `Product`
|
ALTER TABLE `Product`
|
||||||
MODIFY COLUMN `ownerId` INT NOT NULL;
|
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`
|
ALTER TABLE `Product`
|
||||||
DROP FOREIGN KEY IF EXISTS `Product_ownerId_fkey`;
|
DROP FOREIGN KEY IF EXISTS `Product_ownerId_fkey`;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user