피드로 돌아가기
Dev.toDatabase
원문 읽기
Flyway 도입을 통한 DB Schema 버전 관리 및 환경 간 일관성 확보
OrderHub Day 3: Versioned Schema With Flyway Migrations (Spring Boot)
AI 요약
Context
Hibernate ddl-auto: update 방식의 자동 스키마 생성으로 인한 버전 관리 불가 및 코드 리뷰 누락 문제 발생. 운영 환경에서의 예측 불가능한 스키마 변경 및 데이터 유실 위험으로 인한 관리 체계 필요성 대두.
Technical Solution
- SQL 기반의 Versioned Migration 파일 작성을 통한 Schema as Code 구현
- Flyway의 flyway_schema_history 테이블을 활용한 마이그레이션 실행 이력 추적 및 순차적 적용
- ddl-auto 설정을 update에서 validate로 변경하여 ORM의 임의 변경 차단 및 Entity 정합성 검증
- Append-only 원칙 적용을 통한 기존 마이그레이션 파일 수정 금지 및 신규 버전 파일 생성 기반의 변경 이력 유지
- H2와 PostgreSQL 간의 SQL 호환성 확보를 통한 로컬 및 운영 환경의 Schema 일관성 유지
실천 포인트
1. ddl-auto 설정을 validate로 변경하여 런타임 시 Entity-DB 불일치 조기 발견
2. 모든 DB 변경 사항을 SQL 파일로 명문화하여 Git을 통한 코드 리뷰 프로세스 통합
3. 이미 배포된 Migration 파일 수정 대신 신규 버전 파일을 추가하는 Append-only 전략 준수
4. 환경별 DB 엔진 차이를 고려한 Portable SQL 작성 여부 검토