Spring boot flywayMigrateの設定
開発してるとDBの内容はどんどん変わっていきますね。
flywayはデータベースマイグレーションツールです。
SQL文を開発環境に適用してくれるベ便利ツールです。
https://flywaydb.org/
Spring bootプロジェクトのbuild.gradleに設定を追加します。
http://pgmgonta.hatenablog.com/entry/2014/06/01/100859
https://github.com/flyway/flyway/blob/master/flyway-sample/build.gradle
を参考に設定します。
公式によると現在のバージョンは4.1.2らしいので設定します。
個人的にはツールのバージョンを設定ファイルに書くの嫌いですね。そんなもん書かなくても最新版適用しろよ
flywayのプラグインの設定とDBアクセスのための情報を追加します。
適用するSQL文はsrc/main/resources/db/migrationの下に
バージョン番号__名前.sql
という番号で作成します。
バージョン番号の順に適用されるので、SQL文に依存関係がある場合はバージョン番号に留意しましょう。
アンダーバーは2つです。
$ gradle flywayMigrate
を実行するとSQL文がDBに適用されます。
schema_versionというテーブルが作成されて、どのSQL文が適用されたか記録しています。
次回からは新しく追加されたSQL文のみが実行されます。
DBをクリアして最初から適用し直したいときは
$ gradle flywayClean
$ gradle flywayMigrate
を実行します。
ただしテーブルの中身もクリアになるので気をつけて下さい。
初期データをSQL文で用意しておけば、いつでも初期データの状態にクリアしてやり直すことも可能です。
flywayはデータベースマイグレーションツールです。
SQL文を開発環境に適用してくれるベ便利ツールです。
https://flywaydb.org/
Spring bootプロジェクトのbuild.gradleに設定を追加します。
http://pgmgonta.hatenablog.com/entry/2014/06/01/100859
https://github.com/flyway/flyway/blob/master/flyway-sample/build.gradle
を参考に設定します。
公式によると現在のバージョンは4.1.2らしいので設定します。
個人的にはツールのバージョンを設定ファイルに書くの嫌いですね。そんなもん書かなくても最新版適用しろよ
flywayのプラグインの設定とDBアクセスのための情報を追加します。
buildscript {
ext {
springBootVersion = '1.5.2.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath "org.flywaydb:flyway-gradle-plugin:4.1.2"
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'org.flywaydb.flyway'
flyway {
url = 'jdbc:postgresql://192.168.33.10:5432/demodb'
user = 'vagrant'
password = 'vagrant'
}
適用するSQL文はsrc/main/resources/db/migrationの下に
バージョン番号__名前.sql
という番号で作成します。
バージョン番号の順に適用されるので、SQL文に依存関係がある場合はバージョン番号に留意しましょう。
アンダーバーは2つです。
$ gradle flywayMigrate
を実行するとSQL文がDBに適用されます。
schema_versionというテーブルが作成されて、どのSQL文が適用されたか記録しています。
次回からは新しく追加されたSQL文のみが実行されます。
DBをクリアして最初から適用し直したいときは
$ gradle flywayClean
$ gradle flywayMigrate
を実行します。
ただしテーブルの中身もクリアになるので気をつけて下さい。
初期データをSQL文で用意しておけば、いつでも初期データの状態にクリアしてやり直すことも可能です。
この記事へのコメント