.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