Flywayマイグレーションの設定方法
データベースのバージョン管理ツール
■特徴
・アプリを新規作成した場合はSQLが全て適用される
・過去のバージョンのアプリの場合は差分のSQLのみ適用される
・DB更新のデグレが発生しないので、特に複数人で開発する際に役立つ
■インストール方法
【Eclipseの場合】
Springスタータープロジェクト作成時に「Flyway Migration」をプロジェクト依存関係に含める
【Gradleの場合】
「build.gradle」ファイルに下記を記述
記述場所:dependencies
記述コード:
implementation 'org.flywaydb:flyway-core'
■「migration」パケージの作成
「src\resources\db\migration」を作成する
■「application.properties」の設定
#Flywayマイグレーション
#ベースラインのバージョンを指定
spring.flyway.baselineVersion=0.0.0
#すでに存在するデータベースにFlywayを適用する為の設定
spring.flyway.baseline-on-migrate=true
【※参考】バージョン管理テーブル(flyway_schema_history)を削除する場合
DROP TABLE スキーマ名."flyway_schema_history";
-- 「スキーマ名」はダブルクォーテーションで囲まない
■SQLファイル作成
テキストエディタ等でSQLファイルを作成する
但し、ファイル名は下記に注意
・最初の文字は半角大文字の「V」を指定すること
・バージョンとファイル名の間はアンダースコアを2つ続ける
・アンダースコアはドットに変換される
・ベースラインのバージョンと同じバージョンのSQLファイルの場合はSQLは実行されない
・アプリケーションを起動するとマイグレーションが実行される
【例】バージョン0.0.1の場合
V0_0_1__ファイル名.SQL
■SQLファイル格納先
「/src/main/resources/db/migration」配下
【※参考】Eclipseで設定した場合のフォルダ構成