diff --git a/src/lib/server/db/migrations/015_shopping_check_family.sql b/src/lib/server/db/migrations/015_shopping_check_family.sql new file mode 100644 index 0000000..f396ba1 --- /dev/null +++ b/src/lib/server/db/migrations/015_shopping_check_family.sql @@ -0,0 +1,14 @@ +-- Konsolidierung: unit_key in shopping_cart_check wird zum Family-Key, damit +-- Abhaks stabil bleiben wenn Display-Unit zwischen g und kg wechselt. +-- g/kg → 'weight', ml/l → 'volume', Rest bleibt unveraendert. +UPDATE shopping_cart_check SET unit_key = 'weight' WHERE LOWER(TRIM(unit_key)) IN ('g', 'kg'); +UPDATE shopping_cart_check SET unit_key = 'volume' WHERE LOWER(TRIM(unit_key)) IN ('ml', 'l'); + +-- Nach Relabeling koennen Duplikate entstehen (zwei Zeilen mit 'weight' pro +-- name_key). Juengsten Eintrag behalten. +DELETE FROM shopping_cart_check +WHERE rowid NOT IN ( + SELECT MAX(rowid) + FROM shopping_cart_check + GROUP BY name_key, unit_key +);