mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 17:45:39 +00:00
Delete userfield values when deleting a product/chore/battery/userfield (closes #1632)
This commit is contained in:
parent
6a50f74a14
commit
3e4f2eaf5d
74
migrations/0183.sql
Normal file
74
migrations/0183.sql
Normal file
@ -0,0 +1,74 @@
|
||||
DROP TRIGGER cascade_product_removal;
|
||||
CREATE TRIGGER cascade_product_removal AFTER DELETE ON products
|
||||
BEGIN
|
||||
DELETE FROM stock
|
||||
WHERE product_id = OLD.id;
|
||||
|
||||
DELETE FROM stock_log
|
||||
WHERE product_id = OLD.id;
|
||||
|
||||
DELETE FROM product_barcodes
|
||||
WHERE product_id = OLD.id;
|
||||
|
||||
DELETE FROM quantity_unit_conversions
|
||||
WHERE product_id = OLD.id;
|
||||
|
||||
DELETE FROM recipes_pos
|
||||
WHERE product_id = OLD.id;
|
||||
|
||||
UPDATE recipes
|
||||
SET product_id = NULL
|
||||
WHERE product_id = OLD.id;
|
||||
|
||||
DELETE FROM meal_plan
|
||||
WHERE product_id = OLD.id
|
||||
AND type = 'product';
|
||||
|
||||
DELETE FROM shopping_list
|
||||
WHERE product_id = OLD.id;
|
||||
|
||||
DELETE FROM userfield_values
|
||||
WHERE object_id = OLD.id
|
||||
AND field_id IN (SELECT id FROM userfields WHERE entity = 'products');
|
||||
END;
|
||||
|
||||
DROP TRIGGER cascade_chore_removal;
|
||||
CREATE TRIGGER cascade_chore_removal AFTER DELETE ON chores
|
||||
BEGIN
|
||||
DELETE FROM chores_log
|
||||
WHERE chore_id = OLD.id;
|
||||
|
||||
DELETE FROM userfield_values
|
||||
WHERE object_id = OLD.id
|
||||
AND field_id IN (SELECT id FROM userfields WHERE entity = 'chores');
|
||||
END;
|
||||
|
||||
DROP TRIGGER cascade_battery_removal;
|
||||
CREATE TRIGGER cascade_battery_removal AFTER DELETE ON batteries
|
||||
BEGIN
|
||||
DELETE FROM battery_charge_cycles
|
||||
WHERE battery_id = OLD.id;
|
||||
|
||||
DELETE FROM userfield_values
|
||||
WHERE object_id = OLD.id
|
||||
AND field_id IN (SELECT id FROM userfields WHERE entity = 'batteries');
|
||||
END;
|
||||
|
||||
CREATE TRIGGER cascade_userfield_removal AFTER DELETE ON userfields
|
||||
BEGIN
|
||||
DELETE FROM userfield_values
|
||||
WHERE object_id = OLD.id
|
||||
AND field_id = OLD.id;
|
||||
END;
|
||||
|
||||
DELETE FROM userfield_values
|
||||
WHERE object_id NOT IN (SELECT id FROM products)
|
||||
AND field_id IN (SELECT id FROM userfields WHERE entity = 'products');
|
||||
|
||||
DELETE FROM userfield_values
|
||||
WHERE object_id NOT IN (SELECT id FROM chores)
|
||||
AND field_id IN (SELECT id FROM userfields WHERE entity = 'chores');
|
||||
|
||||
DELETE FROM userfield_values
|
||||
WHERE object_id NOT IN (SELECT id FROM batteries)
|
||||
AND field_id IN (SELECT id FROM userfields WHERE entity = 'batteries');
|
Loading…
x
Reference in New Issue
Block a user