DDL 生成

Ebean がすべてのテーブルを作成する CREATE ALLDROP ALL の DDL スクリプトを生成して実行できます。これはテストの目的で使用されます。

テストを実行する場合、DB は完全に最初から作成されます。

ebean-test 使用

テスト用の DDL を制御して実行する最善の方法は、ebean-testddlMode を使用することです。dropCreate を使用すると、create-all と drop-all のための DDL が生成され、実行されます。

application-test.yml で
ebean:
  test:
    platform: h2 # h2, postgres, mysql, oracle, sqlserver
    ddlMode: dropCreate # none | dropCreate | migrations | create
    dbName: myapp

プロパティの利用

ebean-test を使用したくない場合は、ebean.ddl.generateebean.ddl.run の両方のプロパティを application-test.yml (src/test/resources にあります)で true に設定できます。そうすることで、CREATE ALL DDL が生成されてテストの実行時に実行されます。

application-test.yml で
ebean:
  ddl:
    generate: true
    run: true
または application-test.properties
ebean.ddl.generate=true
ebean.ddl.run=true

db-create-all.sql

DDL が生成されると、db-create-all.sqldb-drop-all.sql が生成され、maven target または gradle build ディレクトリに入れられます。

Ebean はテストを実行するときに自動的にこれらの ddl スクリプトファイルを作り直し、テストの実行前にそれらを実行します。これにより、テストを実行する前にデータベースが効果的に再作成されます。

初期 DDL

initSql プロパティを使用して、"create-all" DDL を実行する前に実行する DDL をさらに指定できます。

ebean.ddl.initSql=testInitialDdl.sql

シード DDL

seedSql プロパティを使用して、通常データベースのシードに使用される "create-all" DDL を実行した後に実行する DDL をさらに指定できます。

ebean.ddl.seedSql=testSeedData.sql

 

DB 移行と比較して

DB 移行 の違いは、モデルの変更に対して DIFF DDL スクリプトが生成され、これらの DIFF DDL スクリプトは通常、Ebean の起動時にターゲットデータベースに適用されることです。