19 lines
647 B
MySQL
19 lines
647 B
MySQL
|
|
-- Visibility invariant: personal foods have an owner; BLS and central admin foods do not.
|
||
|
|
|
||
|
|
UPDATE food_catalog
|
||
|
|
SET owner_profile_id = NULL
|
||
|
|
WHERE catalog_kind IN ('official_bls', 'manual_admin')
|
||
|
|
AND owner_profile_id IS NOT NULL;
|
||
|
|
|
||
|
|
UPDATE food_catalog
|
||
|
|
SET is_active = false
|
||
|
|
WHERE catalog_kind = 'manual_user'
|
||
|
|
AND owner_profile_id IS NULL;
|
||
|
|
|
||
|
|
ALTER TABLE food_catalog DROP CONSTRAINT IF EXISTS chk_food_catalog_owner;
|
||
|
|
|
||
|
|
ALTER TABLE food_catalog ADD CONSTRAINT chk_food_catalog_owner CHECK (
|
||
|
|
(catalog_kind = 'manual_user' AND owner_profile_id IS NOT NULL)
|
||
|
|
OR (catalog_kind IN ('official_bls', 'manual_admin') AND owner_profile_id IS NULL)
|
||
|
|
);
|