DDL 生成
Ebean がすべてのテーブルを作成する CREATE ALL
と DROP ALL
の DDL スクリプトを生成して実行できます。これはテストの目的で使用されます。
テストを実行する場合、DB は完全に最初から作成されます。
ebean-test 使用
テスト用の DDL を制御して実行する最善の方法は、ebean-test と ddlMode を使用することです。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.generate
と ebean.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.sql
と db-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 の起動時にターゲットデータベースに適用されることです。