-- P5-1677 3b Make sure the canonical settings on categories in admin works and implement the backend logic

-- Adding primary key
ALTER TABLE category_metadata ADD PRIMARY KEY (category_id);

ALTER TABLE category_metadata
  ALTER COLUMN canonical DROP DEFAULT,
  ALTER COLUMN canonical TYPE integer USING (CASE WHEN canonical = '' THEN NULL ELSE canonical::integer END),
  ADD CONSTRAINT categories_category_metadata_canonical_fk FOREIGN KEY (canonical)
REFERENCES public.categories (id)
ON UPDATE CASCADE ON DELETE SET NULL;