[Flyway] 마이그레이션 오류
1. [핵심 에러: Checksum Mismatch]
설명: 이미 데이터베이스(DB)에 실행된 마이그레이션 파일의 내용이 수정되어, DB가 기억하는 파일의 ‘지문(Checksum)’과 현재 로컬 파일의 ‘지문’이 일치하지 않는 현상
2. [발생 원인: 파일 정합성 위배]
- 기록 불일치: flyway_schema_history 테이블에 기록된 기록(Applied)은 A인데, 프로젝트의 실제 파일(Resolved)은 B로 변해버림
- Flyway의 원칙: “한 번 배포된 마이그레이션 파일은 절대 수정하지 않는다”는 원칙을 어겼기 때문에 실행을 거부함
3. [해결 방안: 상황별 조치]
✅ 방법 A: Flyway Repair (데이터 유지 필요 시)
- 설명: 현재 로컬에 있는 파일들을 기준으로 DB의 이력(Checksum)을 강제로 업데이트합니다.
- 실행 예시:Bash
✅ 방법 B: DB Schema 초기화 (개발 초기 단계 - 추천)
- 설명: 문제가 된 스키마를 완전히 삭제하고 Flyway가 처음부터 다시 테이블을 그리게 만듭니다.
- 실행 예시 (DB 콘솔에서):SQL
✅ 방법 C: 신규 마이그레이션 파일 생성 (운영 환경 원칙)
- 설명: V1을 수정하는 대신, V2__add_column.sql 처럼 새로운 파일을 만들어 변경 사항을 반영합니다.
- 실행 예시: resources/db/migration/V2__alter_table_add_col.sql 파일 추가 생성.
This post is licensed under CC BY 4.0 by the author.