- wing + wing_auth DB를 wing 단일 DB로 통합 (wing/auth 스키마 분리) - wingPool 단일 Pool + search_path 설정, authPool 하위 호환 유지 - 게시판 BOARD_POST DDL + 초기 데이터 10건 마이그레이션 - boardService/boardRouter CRUD 구현 (페이징, 검색, 소유자 검증, 논리삭제) - requirePermission 카테고리별 서브리소스 동적 적용 (board:notice, board:qna 등) - 프론트엔드 boardApi 서비스 + BoardListTable mock→API 전환 - CRUD-API-GUIDE (범용 가이드 + 게시판 튜토리얼) 문서 작성 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
46 lines
1.9 KiB
SQL
46 lines
1.9 KiB
SQL
-- ============================================================
|
|
-- 마이그레이션 005: DB 통합 (wing + wing_auth → wing 단일 DB)
|
|
--
|
|
-- 스키마 구조:
|
|
-- wing — 운영 데이터 (LAYER, BOARD_POST, HNS_SUBSTANCE 등)
|
|
-- auth — 인증/인가 데이터 (AUTH_USER, AUTH_ROLE 등)
|
|
-- public — PostGIS 시스템 테이블만 유지 (spatial_ref_sys)
|
|
--
|
|
-- 실행 순서:
|
|
-- 1. 이 SQL을 wing DB에서 실행 (스키마 생성 + 테이블 이동)
|
|
-- 2. wing_auth DB 덤프 → auth 스키마로 복원 (별도 쉘)
|
|
-- 3. search_path 설정
|
|
-- ============================================================
|
|
|
|
-- Step 1: 명시적 스키마 생성
|
|
CREATE SCHEMA IF NOT EXISTS wing;
|
|
CREATE SCHEMA IF NOT EXISTS auth;
|
|
|
|
-- Step 2: 기존 public 운영 테이블을 wing 스키마로 이동
|
|
-- (PostGIS 시스템 테이블 spatial_ref_sys, topology는 public에 유지)
|
|
ALTER TABLE IF EXISTS public.layer SET SCHEMA wing;
|
|
ALTER TABLE IF EXISTS public.hns_substance SET SCHEMA wing;
|
|
|
|
-- Step 3: 기본 search_path 설정 (DB 레벨)
|
|
-- wing 사용자가 스키마 접두사 없이 양쪽 테이블 접근 가능
|
|
ALTER DATABASE wing SET search_path = wing, auth;
|
|
|
|
-- Step 4: wing 사용자에게 auth 스키마 권한 부여
|
|
-- (wing_auth 데이터 복원 후 적용)
|
|
GRANT USAGE ON SCHEMA auth TO wing;
|
|
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA auth TO wing;
|
|
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA auth TO wing;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA auth GRANT ALL ON TABLES TO wing;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA auth GRANT ALL ON SEQUENCES TO wing;
|
|
|
|
-- Step 5: wing 스키마 기본 권한
|
|
GRANT ALL PRIVILEGES ON SCHEMA wing TO wing;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA wing GRANT ALL ON TABLES TO wing;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA wing GRANT ALL ON SEQUENCES TO wing;
|
|
|
|
-- 검증
|
|
SELECT schemaname, tablename
|
|
FROM pg_tables
|
|
WHERE schemaname IN ('wing', 'auth')
|
|
ORDER BY schemaname, tablename;
|