Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

Infra

[Flyway] 간략히 알아보는 Flyway 적용법

2021. 10. 5. 17:37

간략히 알아보는 FlyWay 적용법

FlyWay?

  • DB Migration Tool

도입하게된 이유는?

  • 진행 중인 프로젝트에서 spring.jpa.hibernate.ddl-auto 속성을 update을 이용했었는데 운영서버와 개발서버 간의 문제가 간간히 발생했고, create 속성으로 두기에도 데이터가 계속해서 날라가는 단점이 있었다. validate 으로 두고 진행하니, 운영서버와 개발서버를 나누고 있는 상황에서 한 쪽에만 DDL, DML을 적용되는 실수가 발생할 수 있기에 이를 쉽게 관리하기 위해 사용했다. 또한, 버전 기록이 남아있어 변경 내역을 확인할 수가 있다는 장점이 있다.

적용법

  1. build.gradle 의존성 추가

    dependencies {
      implementation 'org.flywaydb:flyway-core:6.4.2'
    }
  2. application.yml / properties에 설정값 추가

    spring:
      flyway:
        baseline-on-migrate: true
        baseline-version: 0

    baseline-on-migrate

    default 값은 false 이다. true일 경우 flyway_schema_history 테이블이 없는 경우 생성해준다.
    false는 해당 테이블이 기존에 생성되 있어야 한다.

    baseline-version

    default 값은 1이다. 밑에서 언급할 version의 시작 기준 값을 나타낸다.

  3. sql 파일 작성

    image

    V1__init.sql 에는 테이블 생성 쿼리가, V2... .sql 에는 컬럼 이름 변경에 대한 쿼리가 적혀져 있는 상황이다.

    resources/db/migration/prod 디렉터리 내부에 sql 파일을 작성한다.
    파일 이름 형식은 V{버전 숫자}__{name}.sql 이다. 언더바는 반드시 2개가 들어가야한다.
    위의 설정에서 baseline-version 을 0으로 두어야 V1 부터 읽는다.

    DB 내의 flyway_schema_history 에 적힌 버전을 보고 반영될 버전 오름차순으로 차례대로 적용해준다.


DB 별로 스크립트가 다를 수 있으니 syntax error에 유의해야 한다.
spring.jpa.hibernate.ddl-auto 는 validate 으로 두자.


'Infra' 카테고리의 다른 글

[Kubernetes] 쿠버네티스 개념 간략 정리  (2) 2022.01.22
쿼리 튜닝 미션 적용기  (0) 2021.10.13
[Jenkins] 간략히보는 SonarQube와 Jenkins 연동하기  (0) 2021.08.06
[DB] Mysql Order By 쿼리 ONLY_FULL_GROUP_BY 문제 해결  (0) 2021.08.06
[Nginx] 하나의 Nginx로 여러 upstream 처리하기  (2) 2021.08.04
    'Infra' 카테고리의 다른 글
    • [Kubernetes] 쿠버네티스 개념 간략 정리
    • 쿼리 튜닝 미션 적용기
    • [Jenkins] 간략히보는 SonarQube와 Jenkins 연동하기
    • [DB] Mysql Order By 쿼리 ONLY_FULL_GROUP_BY 문제 해결
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바