mirror of
https://github.com/grocy/grocy.git
synced 2025-08-20 12:20:22 +00:00
Fixed migration when having unsupported parent/child product nesting levels (fixes #1542)
This commit is contained in:
@@ -1,3 +1,33 @@
|
||||
/*
|
||||
|
||||
Parent/child product relations are currently limited to 1 level.
|
||||
|
||||
This was enforced by the UI/frontend since ever, but on the backend/database only
|
||||
since v3.0.0 (by the trigger enfore_product_nesting_level).
|
||||
|
||||
So via the API (or any third party app/tool which utilizes it), it was potentially possible
|
||||
to create > 1 level nestings before v3.0.0.
|
||||
|
||||
The ALTER TABLE statement below does technically an update on all product rows (due to the column default value),
|
||||
so > 1 level nestings would make this fail.
|
||||
|
||||
=> So clean up those unsupported nesting levels here.
|
||||
|
||||
*/
|
||||
|
||||
-- Clears parent_product_id for any > 1 level nesting (which is currently unsupported)
|
||||
UPDATE products
|
||||
SET parent_product_id = NULL
|
||||
WHERE id IN (
|
||||
SELECT
|
||||
p_child.id
|
||||
FROM products p_parent
|
||||
JOIN products p_child
|
||||
ON p_parent.parent_product_id = p_child.id
|
||||
WHERE p_parent.parent_product_id IS NOT NULL
|
||||
)
|
||||
AND parent_product_id IS NOT NULL;
|
||||
|
||||
ALTER TABLE products
|
||||
ADD default_print_stock_label INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
@@ -8,4 +38,4 @@ ALTER TABLE products
|
||||
ADD allow_label_per_unit INTEGER NOT NULL DEFAULT 0;
|
||||
|
||||
UPDATE products
|
||||
SET allow_label_per_unit = 0;
|
||||
SET allow_label_per_unit = 0;
|
||||
|
Reference in New Issue
Block a user