-- 포스트 보드 기본 카테고리 시드 — 편집형 일방 발행 taxonomy (Unity 5-mirror) -- 배경: post_categories 는 운영자 CRUD 대상이나(D1/G2), 런칭 시 기본 탭이 곧바로 -- 렌더되도록 기본 5개 카테고리를 시드한다. 이후 운영자가 관리화면에서 추가/수정/ -- 비활성 가능. 카테고리 축은 Unity 공식 블로그(News/DevBlog/Games/Engine&platform/ -- Industry)를 미러링한 편집 taxonomy 다 — 포스트 보드가 제작자 상호 포럼이 아니라 -- 일방 발행/소비 모델이기 때문. -- -- 이 프로젝트는 flyway/liquibase 가 없다(db/apply-local-ddl.sh 참고). 이 파일은 -- 작성만 한다. DB 적용은 orchestrator 가 사용자 확인 후 수행한다. -- -- 멱등: slug UNIQUE(ux_post_categories_slug) 기준 ON CONFLICT DO NOTHING → -- 재실행해도 중복 미생성. 기존에 동일 slug 가 있으면 건드리지 않는다(운영자 변경 보존). -- -- 적용 (로컬 dev 스키마, 가동중 컨테이너): -- docker exec -e PGOPTIONS="-c search_path=dev" -i bibimbap-db \ -- psql -U bibimbap -d bibimbap -v ON_ERROR_STOP=1 -f - < db/migrations/20260724-post-categories-seed.sql -- 적용 (운영): 운영 스키마 search_path 로 동일 실행. INSERT INTO post_categories (name, slug, sort_order, is_active) VALUES ('공지', 'notice', 1, true), ('개발일지', 'devlog', 2, true), ('쇼케이스', 'showcase', 3, true), ('자료·튜토리얼', 'resources', 4, true), ('업계 소식', 'industry', 5, true) ON CONFLICT (slug) DO NOTHING; -- 검증 (적용 후 위 slug 5건 전부 존재해야 함): -- SELECT id, name, slug, sort_order, is_active FROM post_categories ORDER BY sort_order; -- 롤백 (이 시드만 제거 — 운영자가 추가 생성한 카테고리는 보존): -- DELETE FROM post_categories WHERE slug IN ('notice','devlog','showcase','resources','industry'); -- 주의: posts.category_id 는 NOT NULL FK 다. 해당 카테고리에 연결된 글이 있으면 -- FK 위반으로 삭제 불가 → 글을 다른 카테고리로 이관하거나 is_active=false 로 숨길 것.