[Flyway] Flyway-JPA 초기화 순서 트러블슈팅 & 성능 최적화 가이드

은서·2026년 1월 18일

Springboot - Flyway

목록 보기
5/7

7장.MySQL/PostgreSQL 차이점

현재 프로젝트(MySQL 설정)

  • build.gradle
  • 문제점: MySQL을 사용하는데 PostgreSQL 드라이버 포함됨
  • 수정 필요
  • application-local.yml

PostgreSQL 사용 시

Flyway 마이그레이션 SQL 차이

  • MySQL (V1__initial.sql)
  • PostgreSQL (V1__initial.sql)

8장. 성능 고려사항

application.yml

baseline-on-migrate: true가 성능에 미치는 영향

장점:

  • 기존 DB에 Flyway를 처음 도입할 때 유용
  • 현재 스키마를 버전 1로 간주

단점:

  • 최초 실행 시 스키마 전체 스캔 필요
  • 애플리케이션 시작 시간 증가 (약 500ms ~ 2초)

프로덕션 환경 권장 설정

성능 측정

트러블슈팅 섹션

Q1: Flyway 마이그레이션이 실패하면?

  • 시나리오
  • 에러 발생 시
  • 결과
    • FlywayMigrationInitializer.afterPropertiesSet()에서 예외 발생
    • Hibernate는 시작조차 안 됨 (dependsOn 때문)
    • 애플리케이션 시작 실패
  • 해결 방법
    1. SQL 수정 후 재시작
    2. 또는 flyway.repair() 실행

Q2: 순서를 강제로 바꾸려면?

1. @DependsOn 직접 사용

  • 주의: 이렇게 하면 Flyway를 사용하는 의미가 없어진다

2. Ordered 값 조정

  • FlywayMigrationInitialzer.java
  • 커스터마이징
profile
개발자 대학생🌱

0개의 댓글