[spring] Spring Boot application.yml 의 Flyway 옵션 By starseat 2023-04-27 15:53:48 java/spring Post Tags ```text spring: flyway: url: user: password: locations: baseline-version: baseline-description: validate-on-migrate: ignore-missing-migrations: ignore-ignored-migrations: ignore-failed-future-migration: baseline-on-migrate: out-of-order: placeholder-prefix: placeholder-suffix: sql-migration-prefix: sql-migration-suffix: table: tablespace: target: undo-sql-migration-prefix: undo-sql-migration-suffix: clean-on-validation-error: encoding: callbacks: batch: validate-migration-naming: errorOverrides: - {rule: , error: } ``` **url** - 데이터베이스 연결 URL **user** - 데이터베이스 사용자 이름 **password** - 데이터베이스 사용자 비밀번호 **locations** - 마이그레이션 파일이 위치한 경로(여러 개의 경로를 지정할 수 있음) - resources 패키지에 db/migration 패키지를 만들고 해당 패키지 안에 스크립트 파일 추가 - default 위치: main/resources/db/migration **baseline-version** - 마이그레이션을 시작할 버전(기본값: 1) - 스키마를 초기화할 때 적용할 버전을 설정 - 이 옵션을 설정하면 해당 버전 이전의 마이그레이션 파일을 실행하지 않음. - 히스토리 테이블이 없을 경우 히스토리 테이블을 생성 후 baseline 정보가 입력될 때 시작되는 버전 정보 **baseline-description** - 첫 번째 마이그레이션에 대한 설명(기본값: "Flyway Baseline") **validate-on-migrate** - 마이그레이션을 실행하기 전에 스키마 유효성 검사 여부(기본값: true) **ignore-missing-migrations** - 적용되지 않은 마이그레이션이 있는 경우 경고하지 않고 계속 진행할 지 여부(기본값: false) **ignore-ignored-migrations** - 무시된 마이그레이션을 적용하지 않고 진행할 지 여부(기본값: false) **ignore-failed-future-migration** - 실패한 마이그레이션의 향후 적용 여부(기본값: false) **baseline-on-migrate** - 마이그레이션을 실행하기 전에 baseline을 실행할 지 여부(기본값: false / 히스토리 테이블이 이미 존재할 때 사용) - 버전 정보를 flyway_shcema_history 라는 테이블에서 관리하는데 해당 테이블을 자동으로 생성(true로 설정하면 히스토리 테이블이 없을 경우에 생성) **out-of-order** - 마이그레이션 파일의 버전이 이미 적용된 마이그레이션의 버전보다 높은 경우 적용 여부(기본값: false) **placeholder-prefix** - Flyway가 인식하는 플레이스홀더의 시작 문자열(기본값: ${) **placeholder-suffix** - Flyway가 인식하는 플레이스홀더의 종료 문자열(기본값: }) **sql-migration-prefix** - SQL 마이그레이션 파일의 접두사(기본값: V) **sql-migration-suffix** - SQL 마이그레이션 파일의 접미사(기본값: .sql) **table** - Flyway가 사용할 메타데이터 테이블 이름(기본값: schema_version) - 메타데이터 테이블은 마이그레이션의 버전, 설명, 스키마 등의 정보 저장 **tablespace** - 메타데이터 테이블을 저장할 테이블 스페이스 이름 **target** - 마이그레이션을 수행할 대상 버전 **undo-sql-migration-prefix** - SQL 롤백 마이그레이션 파일의 접두사(기본값: R) **undo-sql-migration-suffix** - SQL 롤백 마이그레이션 파일의 접미사(기본값: .sql) **clean-on-validation-error** - validate migration을 실행하다가 에러가 발생하면, 해당 migration 파일 이후의 모든 migration 파일을 롤백한 뒤 clean을 실행할지 여부를 설정하는 옵션 - `clean` 명령은 스키마의 모든 객체 삭제 - 이 옵션을 true로 설정하면 Flyway가 오류를 발견하면 스키마를 깨끗하게 만들어 Flyway가 다시 시작할 수 있도록 함. - true/false **encoding** - migration 파일의 인코딩을 설정하는 옵션 (default: UTF-8) **callbacks** - migration을 실행하는 중에 이벤트 발생 시 호출되는 callback 클래스를 지정하는 옵션 - ex: com.example.MyCallback **batch** - migration을 실행할 때 적용되는 batch mode를 설정하는 옵션. - batch mode는 migration 파일이나 SQL 스크립트에 대한 개별 트랜잭션 대신 대량의 migration 파일을 단일 트랜잭션으로 실행할 수 있도록 지원 - true/false **validate-migration-naming** - 마이그레이션 파일의 네이밍 규칙을 검증할지 여부를 지정 - true/false **errorOverrides** - migration 중 에러가 발생한 경우, 미리 정의된 규칙(rule)에 따라 해당 에러를 오버라이드할 수 있는 옵션 - 규칙(rule)과 에러(error)를 갖는 리스트 (예: [{rule: "FlywaySqlScriptException", error: "IGNORE"}]) Previous Post [spring] Spring Boot Flyway 적용 Next Post [java] 메모리 측정