Database/flyway
flyway-spring boot 연동
최-코드
2024. 11. 30. 01:45
의존성 : 초기 프로젝트 의존성을 설정할 때 flyway migration을 검색하여 등록하면 아래와 같이 등록된다.
implementation 'org.flywaydb:flyway-core'
마이그레이션 파일 위치 : resources/db/migration에 위치시키면 된다. 이는 기본 경로로 변경할 수 있지만, 기본 경로를 사용하는 것이 더 효율적이다.
Flyway Migration Creation
- 이는 인텔리제이 IDE 내에 있는 플러그인으로 꼭 install하자. 이를 통해 마이그레이션 파일을 손쉽게 생성할 수 있다.
- 파일명을 생성할 때 파일 설명, description만 적어주면 되는데 이 때, 언더바 없이 띄어쓰기를 써도 무방하다.
- 파일의 버전은 파일을 생성한 날짜, 시간으로 설정해준다.
- 예를 들어 파일명을 "init table"라고 입력하면 자동으로 V20241130TTMMSS__init_table.sql로 만들어준다.
- 파일 생성할 시에 Flyway Migration/Versioned migration을 통해 진행해야 한다.
실수 방지
- ddl-auto를 validate로 설정하면 현재 flyway로 설정된 테이블과 코드 내의 entity 간의 스키마 차이를 오류로 발생시킬 수 있다. 따라서 flyway를 사용할 때 발생할 실수를 방지할 수 있는 방법 중 하나이다.
- 테이블을 만들 때 create table if not exists와 같이 해주자. 여러 사람이 작업하다보면 create를 여러 번 할 수도 있는데 그러면 flyway가 오류를 내뱉는다.
application 설정 파일
flyway:
baseline-on-migrate: true
out-of-order: true
- baseline-on-miograte: true로 설정하면 기존의 데이터베이스에 마이그레이션을 적용할 때 기준점을 설정하는 기능으로, flyway_schema_history 테이블이 없을 시 자동으로 생성해준다.
- out-of-order: true로 설정하면 먼저 마이그레이션 파일을 만들었는데 나중에 만들어진 마이그레이션 파일보다 나중에 커밋할 경우 충돌이 나는 것을 방지해주는 옵션이다.