Flyway
를 이용한 DB MigrationFlyway
?Flyway
는 오픈소스 데이터베이스 마이그레이션 툴
이다 !
→ 데이터베이스의 변경 사항
을 추적하고, 업데이트
나 롤백
을 보다 쉽게 할 수 있도록 도와주는 도구이다 !Database Migration
이 필요한 이유 !로컬 환경
에만 DB가 존재하는게 아니라, 테스트 서버
나 프로덕션 서버
에도 각각 별도의 DB
가 존재한다 !엔티티의 구조
를 변경하게 될 일이 빈번하고 이로 인해서 DB의 스키마
도 변경될텐데, 로컬 환경이나 개발 환경에선 Hibernate
옵션 중 ddl-auto
값을 create
, create-drop
, udpate
등을 이용해서 DDL
을 변경된 엔티티 구조에 따라 자유롭게 수정해도 문제가 없다 !프로덕션 환경
에선 해당 옵션들을 이용해서 테이블을 수정하는 것은 절대 안된다 !!
→ 기존의 데이터가 날아가버리기 때문에, 일일이 DDL
을 작성하여 실행해줘야 한다.
→ 이런 작업이 번거롭고 실수를 할 수도 있으니 나온 것이 Flyway
라고 할 수 있다 !Flyway
를 왜 사용했나 ?<aside>
💡 이번 프로젝트에서 Flyway
를 사용하게 된 계기
사실 현재 프로젝트엔 개발 환경만 존재하고 아직 프로덕션
서버가 존재하지 않기 때문에, 데이터베이스 마이그레이션
이 그렇게 필요한 상황은 아니었다! 하지만, 개발을 계속 하다보니 엔티티
를 수정할 일이 많았고, 이에 따라서 데이터베이스 스키마
나 테이블명
이 자주 변경되었다.
일일이 **DDL
**을 써줘도 되는데 아직 사용자도 없고 무엇보다 너무 번거로워서 해당 옵션들을 사용해왔다.
프론트에서 테스트할 때 DB의 데이터가 초기화되면 같은 과정(회원가입, 데이터 등록)을 반복해야 하는 것이 번거로워 보였고, DB 초기화를 하지 않고 엔티티 구조를 쉽게 수정
할 방법(Flyway
)을 찾아보게 되었다!
</aside>
Flyway
사용 방법 - 노졸중
프로젝트