# Database Migrations > ⚠️ **실제 SQL 파일 위치**: [`backend/src/main/resources/db/migration/`](../../backend/src/main/resources/db/migration/) > > Spring Boot Flyway 표준 위치를 따르므로 SQL 파일은 백엔드 모듈 안에 있습니다. > Spring Boot 기동 시 Flyway가 자동으로 적용합니다. ## DB 정보 - **DB Name**: `kcgaidb` - **User**: `kcg-app` - **Schema**: `kcg` - **Host**: `211.208.115.83:5432` ## 적용된 마이그레이션 (V001~V013) ### Phase 1~8: 인증/권한/감사 (V001~V007) | 파일 | 내용 | |---|---| | `V001__auth_init.sql` | 인증/조직/역할/사용자-역할/로그인 이력 | | `V002__perm_tree.sql` | 권한 트리 + 권한 매트릭스 | | `V003__perm_seed.sql` | 초기 역할 5종 + 트리 노드 45개 + 권한 매트릭스 시드 | | `V004__access_logs.sql` | 감사로그/접근이력 | | `V005__parent_workflow.sql` | 모선 워크플로우 (resolution/review_log/exclusions/label_sessions) | | `V006__demo_accounts.sql` | 데모 계정 5종 | | `V007__perm_tree_label_align.sql` | 트리 노드 명칭을 사이드바 i18n 라벨과 일치 | ### S1: 마스터 데이터 + Prediction 기반 (V008~V013) | 파일 | 내용 | |---|---| | `V008__code_master.sql` | 계층형 코드 마스터 (12그룹, 72코드: 위반유형/이벤트/단속/허가/함정 등) | | `V009__gear_type_master.sql` | 어구 유형 마스터 6종 (분류 룰 + 합법성 기준) | | `V010__zone_polygon_master.sql` | 해역 폴리곤 마스터 (PostGIS GEOMETRY, 8개 해역 시드) | | `V011__vessel_permit_patrol.sql` | 어선 허가 마스터 + 함정 마스터 + fleet_companies (선박 9척, 함정 6척) | | `V012__prediction_events_stats.sql` | vessel_analysis_results(파티션) + 이벤트 허브 + 알림 + 통계(시/일/월) + KPI + 위험격자 + 학습피드백 | | `V013__enforcement_operations.sql` | 단속 이력/계획 + 함정 배치 + AI모델 버전/메트릭 (시드 포함) | ## 실행 방법 ### 최초 1회 - DB/사용자 생성 (관리자 권한 필요) ```sql -- snp 관리자 계정으로 접속 psql -h 211.208.115.83 -U snp -d postgres CREATE DATABASE kcgaidb; CREATE USER "kcg-app" WITH PASSWORD 'Kcg2026ai'; GRANT ALL PRIVILEGES ON DATABASE kcgaidb TO "kcg-app"; \c kcgaidb CREATE SCHEMA IF NOT EXISTS kcg AUTHORIZATION "kcg-app"; GRANT ALL ON SCHEMA kcg TO "kcg-app"; ALTER DATABASE kcgaidb OWNER TO "kcg-app"; ``` ### 마이그레이션 실행 (자동) 백엔드 기동 시 Flyway가 자동 적용: ```bash cd backend && ./mvnw spring-boot:run ``` ### 수동 적용 ```bash cd backend && ./mvnw flyway:migrate -Dflyway.url=jdbc:postgresql://211.208.115.83:5432/kcgaidb -Dflyway.user=kcg-app -Dflyway.password=Kcg2026ai -Dflyway.schemas=kcg ``` ### Checksum 불일치 시 (마이그레이션 파일 수정 후) ```bash cd backend && ./mvnw flyway:repair -Dflyway.url=... (위와 동일) ``` ## 신규 마이그레이션 추가 [`backend/src/main/resources/db/migration/`](../../backend/src/main/resources/db/migration/)에 `V00N__설명.sql` 형식으로 추가하면 다음 기동 시 자동 적용됩니다.