プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

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で設定した場合のフォルダ構成