34 lines
2.1 KiB
SQL
34 lines
2.1 KiB
SQL
-- 포스트 보드 기본 카테고리 시드 — 편집형 일방 발행 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 로 숨길 것.
|