DBマイグレーション
Ebeanは、DBマイグレーションを生成し、それらを実行するためのサポートを組み込んでいます。
DBマイグレーションの生成
GenerateDbMigration (以下のコード) をプロジェクトに追加するには、ebeaninit を使用できることに注意してください。
src/test/java
に以下のコードを追加してマイグレーションを生成します。
src/test/kotlin
に以下のコードを追加してマイグレーションを生成します。
DBマイグレーションを生成するには、このmainメソッドを実行します。特定のプラットフォームのマイグレーションDDLは、モデルの変更(例: テーブルの列の追加など)に基づいて生成されます。
package main;
import io.ebean.annotation.Platform;
import io.ebean.dbmigration.DbMigration;
import java.io.IOException;
public class GenerateDbMigration {
/**
* Generate the DDL for the next DB migration.
*/
public static void main(String[] args) throws IOException {
DbMigration dbMigration = DbMigration.create();
dbMigration.setPlatform(Platform.POSTGRES);
dbMigration.generateMigration();
}
}
package main
import io.ebean.annotation.Platform
import io.ebean.dbmigration.DbMigration
/**
* Generate the DDL for the next DB migration.
*/
fun main(args : Array<!String>) {
// requires jvmTarget 1.8
val dbMigration = DbMigration.create()
dbMigration.setPlatform(Platform.POSTGRES)
dbMigration.generateMigration()
}
いくつかの作業を完了し、リリースの準備ができたと判断した場合に、手動で実行します。
生成を実行すると、Ebeanがオフラインモードで起動し、モデルのDIFFを実行し、マイグレーションDDLスクリプトを生成します。
マイグレーションの実行
組み込みのマイグレーションランナーを使用してマイグレーションを実行するには、ebean.migration.run
をtrueに設定します。
application.yamlで
## run migrations when the Ebean starts
ebean:
migration:
run: true
ebean.migration.run=true
が設定されている場合、Ebeanが起動するとマイグレーションを確認し、実行する必要があるマイグレーションを実行します。マイグレーションランナーは、デフォルトでdb_migration
という名前のテーブルを作成し、実行されたマイグレーションに関するメタデータを保持し、マイグレーションが正常に実行されるとこのテーブルに挿入します。