- 지역 이야기(가요·인물·연표·엽서·퀴즈) 생성 경로: story_service · grounding/story · section_prompts. 지금까지 만들 자리가 없어 시안에만 손으로 넣은 3만 자였다 - 발행본 섹션: ItinerarySection · Carousel 레일 자동재생(use-rail-autoplay) · Festival · LocalGuide · Weather · Gallery · Header/Footer - 목업 payload 를 payloads-mockup/ 으로 분리 — 발행 대상과 섞이지 않게 - DB 새 구조 후속: site_payload · local_content_crud 조인 정리 · 테스트 - 마이그레이션 주석 축약: 9개 파일 합계 주석 비율 48% → 25%. 실측과 밟은 함정만 남기고 논증은 커밋 메시지로 옮겼다 검증: site·frontend 빌드 통과 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
54 lines
3.0 KiB
SQL
54 lines
3.0 KiB
SQL
-- 0005 · 스키마 해체
|
|
--
|
|
-- 전용 database 라 이름 충돌이 없고(19개 전부 다름), 계정이 하나라 스키마별 GRANT 도 없다.
|
|
-- 남은 건 "경계 표시"인데 places.place_id 를 참조하는 11개 테이블이 전부 place 밖에 있었다 —
|
|
-- 조인이 매번 넘는 선은 경계가 아니다. 접두어가 소속을 말하게 한다.
|
|
-- area_contents 만 접두어가 없다 — 공유물이라는 표시다.
|
|
|
|
ALTER TABLE IF EXISTS company.users SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS job.jobs SET SCHEMA public;
|
|
|
|
ALTER TABLE IF EXISTS place.places SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS place.place_links SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS place.units SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS place.media SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS fact.facts SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS fact.faqs SET SCHEMA public;
|
|
|
|
ALTER TABLE IF EXISTS public.place_links RENAME TO place_channels; -- 네이버·야놀자 등 채널
|
|
ALTER TABLE IF EXISTS public.units RENAME TO place_units; -- 객실·메뉴·프로그램
|
|
ALTER TABLE IF EXISTS public.media RENAME TO place_photos; -- 실제로 사진만 담는다
|
|
ALTER TABLE IF EXISTS public.facts RENAME TO place_facts;
|
|
ALTER TABLE IF EXISTS public.faqs RENAME TO place_faqs;
|
|
|
|
ALTER TABLE IF EXISTS local.local_contents SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS local.place_contents SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS public.local_contents RENAME TO area_contents;
|
|
ALTER TABLE IF EXISTS public.place_contents RENAME TO place_area_refs;
|
|
|
|
ALTER TABLE IF EXISTS site.sites SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS site.site_contents SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS site.site_versions SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS site.publish_logs SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS public.site_contents RENAME TO site_sections;
|
|
ALTER TABLE IF EXISTS public.publish_logs RENAME TO site_publish_logs;
|
|
|
|
-- 빈 테이블과 이관 잔재는 0006 에서 판단한다.
|
|
ALTER TABLE IF EXISTS place.place_aliases SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS local.routes SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS local.nearby_links SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS site.ai_check_results SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS local.place_contents_legacy SET SCHEMA public;
|
|
ALTER TABLE IF EXISTS public.routes RENAME TO place_routes;
|
|
ALTER TABLE IF EXISTS public.place_aliases RENAME TO place_names;
|
|
-- ai_check_results 는 place_id 가 키다 — 사이트가 아니라 업장이 대상이다.
|
|
ALTER TABLE IF EXISTS public.ai_check_results RENAME TO place_ai_checks;
|
|
|
|
-- CASCADE 를 쓰지 않는다 — 빠뜨린 테이블이 있으면 여기서 실패해야 한다.
|
|
DROP SCHEMA IF EXISTS company RESTRICT;
|
|
DROP SCHEMA IF EXISTS place RESTRICT;
|
|
DROP SCHEMA IF EXISTS fact RESTRICT;
|
|
DROP SCHEMA IF EXISTS local RESTRICT;
|
|
DROP SCHEMA IF EXISTS site RESTRICT;
|
|
DROP SCHEMA IF EXISTS job RESTRICT;
|