Skip to content

7.1. Flyway 개요 및 파일 규칙

7.1. Flyway 개요

7.1.1. DDL 관리 원칙

데이터베이스 스키마의 모든 변경은 Flyway 마이그레이션 파일을 통해 관리합니다.

항목규칙
스키마 변경 방법Flyway 마이그레이션 파일만 허용
수동 DDL 실행금지 (운영 DB 직접 변경 불가)
마이그레이션 파일 수정적용 완료된 파일은 절대 수정 금지
롤백새로운 마이그레이션 파일로 롤백 처리

7.1.2. 의존성

xml
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
</dependency>
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-database-postgresql</artifactId>
</dependency>

Spring Boot BOM에서 버전을 관리하므로 별도의 버전 명시는 불필요합니다.

7.2. 마이그레이션 파일 규칙

7.2.1. 파일 위치

src/main/resources/
└── db/
    └── migration/
        ├── V1__create_users_table.sql
        ├── V2__create_orders_table.sql
        ├── V3__add_phone_to_users.sql
        └── V4__create_documents_table.sql

7.2.2. 파일명 규칙

V{버전번호}__{설명}.sql
구성 요소규칙예시
접두사V (대문자)V1, V10
버전 번호순차 정수1, 2, 3
구분자__ (밑줄 2개)
설명snake_case, 영문create_users_table
확장자.sql

올바른 예시:

V1__create_users_table.sql
V2__create_orders_table.sql
V3__add_phone_to_users.sql
V4__create_idx_users_email.sql
V5__insert_initial_roles.sql

잘못된 예시:

V1_create_users.sql        # 밑줄 1개 (2개 필요)
v1__create_users.sql       # 소문자 v
V1__CreateUsers.sql        # CamelCase 사용
V1__사용자_테이블_생성.sql     # 한글 사용

7.2.3. 버전 넘버링 전략

순차 정수 방식을 사용합니다.

V1, V2, V3, ... V10, V11, ...
  • 팀 규모가 크거나 충돌이 잦은 경우 타임스탬프 방식도 허용합니다: V20260228100000__description.sql
  • 프로젝트 초기에 방식을 정하고 일관되게 유지합니다.

7.2.4. 수정 금지 원칙

절대 금지

이미 flyway_schema_history 테이블에 기록된 마이그레이션 파일은 내용을 수정하거나 삭제할 수 없습니다.

잘못된 마이그레이션을 수정해야 하는 경우, 새로운 버전의 마이그레이션 파일을 작성하여 변경 사항을 적용합니다.

TIENIPIA QUALIFIED STANDARD