-- 템플릿 id에서 업종 접두어를 뗀다(stay-retro → retro). 모르는 값과 업종 허용 목록 밖의 값은 NULL(업종 기본)로 되돌린다. -- 허용 목록은 solution/shared/src/data/templates.json 이다. 재실행해도 결과가 같다. UPDATE sites SET template_id = CASE WHEN template_id ~ '^(stay|cafe|restaurant|clinic)-(simple|magazine|retro|paper)$' THEN regexp_replace(template_id, '^[a-z]+-', '') ELSE NULL END WHERE template_id IS NOT NULL AND template_id NOT IN ('simple', 'magazine', 'retro', 'paper'); UPDATE sites AS s SET template_id = NULL FROM places AS p WHERE p.place_id = s.place_id AND p.category = 4 AND s.template_id NOT IN ('simple', 'magazine'); COMMENT ON COLUMN public.sites.template_id IS '템플릿 id(solution/shared/src/data/templates.json). NULL 이면 업종 기본 템플릿으로 굽는다.'; COMMENT ON COLUMN public.sites.theme IS '색·섹션. {"colors":{...},"look":{...},"colorPaletteId":"...","sections":[{"id","name","enabled","locked","body","data"}]}. 모양(look)은 발행 때 템플릿 정의가 정한다.';