데이터베이스 형상관리 툴이며, DB Git 버전이라고 생각하면 이해하기 편하다.
스키마, 컬럼 등 수정해야하는 상황이 나오면 Flyway 를 통해서 관리한다.
application.properties 삭제 후, application.yaml 파일을 추가
spring:
datasource:
username: root
password: 'password'
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/Lunch?user=root&password=password&autoreconnect=false
jpa:
hibernate:
ddl-auto: validate
sql:
init:
mode: always
flyway:
user: root
password: 'password'
implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-mysql'
생각한 경로에 파일을 저장하고 싶으면 yaml 파일 내에 spring.flyway.locations=classpath:/db/migration 변경해야하며,
기존 경로에 저장하고 싶다면 아무런 설정을 하지 않아도 된다.
아무런 설정을 하지 않을 시, resources.db.migration 경로가 기본 경로이다.
Flyway 는 네이밍 규칙이 정해져있다.
V(버전번홈)설명.sql
ex) V20240809create_book.sql
위 규칙처럼 sql 파일을 만들어야하며, V 외 다른 기능도 있다.
create table book
(
id bigint AUTO_INCREMENT primary key ,
name varchar(100),
created_at timestamp(6),
updated_at timestamp(6)
);
내용을 다 추가하고 실행시킨 후 DB 새로고침해서 테이블을 확인하면 위 내용처럼 만들어져있다.