Flyway 적용하기

헨도·2024년 8월 12일
0

SpringBoot

목록 보기
13/23
post-thumbnail

Flyway 란?

데이터베이스 형상관리 툴이며, DB Git 버전이라고 생각하면 이해하기 편하다.
스키마, 컬럼 등 수정해야하는 상황이 나오면 Flyway 를 통해서 관리한다.

Flyway 사용하는 이유

  • 스키마 또는 컬럼 등 수정하는 것을 잊어버리지 않고 미리 예방할 수 있다.
    스프링을 실행하는 순간 DDL 문을 실행시켜 수정해주기 때문이다.
  • 배포 시점에서 스키마 관리를 일관성있게 관리할 수 있게 도와준다.

Flyway 적용하기

1. application.yaml 추가

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'

2. build.gradle 추가

implementation 'org.flywaydb:flyway-core'
implementation 'org.flywaydb:flyway-mysql'
  • mysql 은 flyway-core 외에 한줄 더 추가해줘야한다.

3. 파일 경로 변경

생각한 경로에 파일을 저장하고 싶으면 yaml 파일 내에 spring.flyway.locations=classpath:/db/migration 변경해야하며,
기존 경로에 저장하고 싶다면 아무런 설정을 하지 않아도 된다.

아무런 설정을 하지 않을 시, resources.db.migration 경로가 기본 경로이다.

4. 파일 네임 규칙

Flyway 는 네이밍 규칙이 정해져있다.

V(버전번홈)설명.sql
ex) V20240809
create_book.sql

위 규칙처럼 sql 파일을 만들어야하며, V 외 다른 기능도 있다.

5. DDL 문 작성

create table book
(
    id bigint AUTO_INCREMENT primary key ,
    name       varchar(100),
    created_at timestamp(6),
    updated_at timestamp(6)
);

실행

내용을 다 추가하고 실행시킨 후 DB 새로고침해서 테이블을 확인하면 위 내용처럼 만들어져있다.

profile
Junior Backend Developer

0개의 댓글