-- Backfill any category that exists in categories_v2_lft_rgt but is missing -- from the canonical `categories` table. The canonical table is what -- product_category references via FK, so every v2 category must have a -- corresponding row there (with is_v2 = true). -- -- This covers categories 1824 and 1825 (created before insertNode was fixed) -- and any other gaps that may exist. ON CONFLICT makes it safe to re-run. INSERT INTO categories (id, name, is_v2) SELECT v2.id, v2.name, true FROM categories_v2_lft_rgt v2 WHERE NOT EXISTS ( SELECT 1 FROM categories c WHERE c.id = v2.id ) ON CONFLICT (id) DO NOTHING;