Flyway란?
- 오픈 소스 데이터베이스 마이그레이션 도구
- 데이터베이스의 형상관리를 목적으로 하는 툴이다.
- 데이터베이스의 형상관리란?
- git을 통해 우리가 코드를 관리하는 것의 데이터베이스 버전으로 볼 수 있다.
- git에서는 코드를 파일별로 로깅을 통해서 변화의 이력을 추적한다.
- flayway는 데이터베이스의 DDL 이력을 쌓아서 DDL이 어떻게 변화되었는지 관리하는 툴로 사용할 수 있습니다.

- 버전별 DB 스크립트 파일을 열거 해 두면 알아서 SQL 파일을 수정해 주고 DB 변경 이력에 대한 관리를 해주는 도구
- 공식 사이트에 따르면 gradle, maven, CLI, Java API 입니다.
Flyway와 JPA

Flyway?
- DB 마이그레이션이란?
- 편한 말로 DB 형상관리
- 형상관리?
- 소프트웨어의 변경 사항을 체계적으로 추적하고 통제하는 것
- GIT
- 즉 우리는 Flyway라는 툴로 DB 변경 관리를 하고 싶은 것이다. 마치 git으로 코드 히스토리를 다루듯
- 그중 하나의 툴로 flyway다
어떤 상황에서 쓰일까?
@Entity public class Member { @Id @GeneratedValue private Long id; private String name; protected Member() { } }
- 새로운 컬럼들이 추가되면?
- 특히 우리가 많이 사용하는 방법
- yml 파일에..
- spring.jpa.hibernate.ddl-auto = create or update 로 반영시킨다.
- update 는 부족한 부분이 뭘까?
- 업데이트는 테이블을 수정하지 않고 부족한 부분만 추가한다.
어떻게 쓸까?
flyway는 가장 먼저 metadata table이란 것을 만든다.
변경 이력을 저장하는 테이블을 저장한다고 생각하면 된다.