Skip to content

iinow/flyway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flyway 사용법

  1. flyway
  2. 파일 경로
  3. 이름 규칙
  4. gradle 설정법
  5. 명령 종류
  6. 사용법

flyway

  • flyway 는 community, pro, Enterprise 버전이 있음..
  • 차이점 은 여기서..

파일 경로

  • resources/db/migration 에 위치하게 된다.

이름 규칙

  • [V][version]__[description].sql
    • ex) V0.0.1__init.sql
  • [R]__[description].sql
    • ex) R__Create_view.sql

버전 명에서는 . 이나 _ 로도 구분 가능하다.

gradle 설정법

  • spring boot initializer 를 사용해서 flyway 를 추가하는 거는 자바단에서 실행하는 것 같다. 안해봐서 모름
  • gradle 로 실행하는 방법을 설명할거라 아래 소스를 추가해준다.
plugins {
    id "org.flywaydb.flyway" version "6.2.4"
}

dependencies {
    runtimeOnly 'mysql:mysql-connector-java'
}

flyway {
    url = 'jdbc:mysql://localhost:3307/ha'
    user = 'root'
    password = 'qlalfqjsghekd'
    encoding = 'UTF-8'
}
  • 위에 드라이버 추가 시킨 것은 flyway 를 실행할 때 gradle 에 작성된 드라이버로 접근하기 때문에 작성해줘야 한다. 자신에 맞는 드라이버 추가 필요

명령 종류

  • Migrate
    • resources/db/migration 에 위치한 SQL 문을 실행해준다.
  • Info
    • 현재 마이그레이션 정보를 출력한다. -> Migrate 명령을 어디까지 실행했는지
  • Validate
    • database 에 적용된 마이그레이션 정보의 유효성을 검증한다.
  • Baseline
    • flyway 로 관리하기 이전에 database 존재시 해당 database 를 flyway baseline 으로 설정할 수 있다.
    • 잘 모르겠음 실행해봐야 알 것 같음
  • Repair
    • 실패한 마이그레이션 항목 제거 (DDL 트랜잭션 지원하지 않는 database만) -> 이전에 Migrate 성공적으로 실행한 버전으로 되돌리기?
  • Clean
    • 모든 database 의 objects 를 제거한다.

사용법

  • gradle 에서 사용할 수 있는 명령어는 링크 여기서 볼 수 있다.
  • ./gradlew flywayMigrate 를 실행하면 sql 문이 실행되고 database 에 flyway_schema_history 이름을 가진 테이블이 생성된다 여기에 자신이 작성한 sql version 이 명시되어 있다. 성공 실패 여부까지도

  • 이건 왜 그러는지 자세히 안 찾아봐서 모르겠는데 ./gradlew flywayMigrate --debug 를 했는데 나오는 에러 메시지는 명확하게 나오지 않을 경우 database 에 있는 모든 테이블을 제거한 후 다시 실행하도록 하자 이랬더니 됨..
  • 이 글을 보면 build.gradle 에 db 접근 정보를 입력을 하는데 좀 보기 안 좋을 수 있다. 이럴땐 flyway.conf 파일로 따로 분리할 수 있다!!
  • flyway.conf 파일 구조 링크
  • 그 대신 config 파일을 사용하면 명령어 실행시 명시적으로 해당 경로를 지정해줘야 한다.
    • 실행할 떄는 ./gradlew -Dflyway.configFiles=src/main/resources/db/migration/flyway.conf flywayMigrate 와 같이 실행해주면 된다.

참조

About

spring boot + flyway

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages