Posted at

Flywayを途中から使いたい(コマンドライン版)

.sqlファイルベースで管理できるマイグレーションツール Flyway を導入しようとしたときに、既に手動で適用してしまっているファイル達は無視するようにする方法です。

sbt flywayを途中のバージョンから的な のようにMavenやGradleでの設定方法はわかったのですがコマンドラインではわからなかったのでメモ。


ファイル構成

既に以下のような構成だとした場合

/

┣flyway
┃ ┣conf
┃ ┃ ┗flyway.conf
┃ ┗(省略)
┗sql
 ┣tables
 ┃ ┣company.sql
 ┃ ┗user.sql
 ┗views
   ┗company_user.sql

まずはFlywayに適合するように、ファイル名を変更します。

/

┣flyway
┃ ┣conf
┃ ┃ ┗flyway.conf
┃ ┗(省略)
┗sql
 ┣tables
 ┃ ┣V1.0.0__company.sql
 ┃ ┗V1.0.1__user.sql
 ┗views
   ┗V1.0.2__company_user.sql


flyway.conf

flyway.driver=org.postgresql.Driver

flyway.jarDirs=../drivers
flyway.url=jdbc:postgresql://127.0.0.1:5432/postgres
flyway.user=USER
flyway.password=PASSWORD
flyway.locations=filesystem:../sql
flyway.baselineVersion=1.0.2

キーポイントは flyway.baselineVersion です。ここで指定されているバージョンまでは、ベースラインとして変更管理の対象外になります。


実行

./flyway baseline

./flyway migrate