Manageタスク

Manageタスクとは?

DBFluteの管理で利用できる様々なタスクを実行できるタスクです。@since 0.9.8.5

実行コマンド

サブタスクを引数に指定

DBFluteクライアント配下の manage.(bat|sh) をコマンドから実行します。その際、どのサブタスクを実行するかを第一引数で必ず指定します。(第二引数の有無は、それぞれのタスクに依存します)

e.g. Renewalタスクを実行するManageタスク @Command
...$ sh manage.sh renewal

番号選択でサブタスクを指定も

第一引数を省略して実行して、番号選択でサブタスクを実行することもできます(@since 0.9.9.8)

第一引数を省略して実行すると、番号に関連付いたサブタスクの一覧が表示されるので、番号を入力して Enter を押すと対応するサブタスクが実行されます。

e.g. 番号選択でサブタスクを実行するManageタスク @Command
...$ sh manage.sh

 1 : renewal (ReplaceSchema, JDBC, Doc, Generate, OutsideSqlTest, Sql2Entity)
 2 : regenerate (JDBC, Doc, Generate, Sql2Entity)

 4 : load-data-reverse
 5 : schema-sync-check

 7 : save-previous
 8 : alter-check
 9 : take-assert

 11 : refresh
 12 : freegen

(input on your console)
What is your favorite task? (number):

スクリプトの中から固定的に呼び出すとかでなければ、このやり方で呼び出す方が手軽です。

第二引数が必須のサブタスクを指定した場合は、番号選択の後に第二引数の入力待ちになります。 例えば、refreshタスクであれば、refresh対象のプロジェクト名の入力待ちになります。

キャンセルしたい場合は、適当な文字を入力して Enter すれば終了します。

環境構築

DBFluteのセットアップが終わった時点から利用できます。

Renewalタスク

DB変更が発生した際に実行するDBFluteタスクをひとまとめにしたタスクです。ReplaceSchema から始まり、再自動生成に加えて OutsideSqlTest で外だしSQLのDB変更の影響範囲などもチェックします。

ReplaceSchema, JDBC, Doc, Generate, OutsideSqlTest, Sql2Entity とまとめて実行します。

e.g. Renewalタスクを実行するManageタスク @Command
...$ sh manage.sh renewal

途中でどれかのタスクが中断した場合は、Renewalタスク自体が中断となります。

第二引数による指定は特にありません。

Regenerateタスク

スキーマは変更せず単に再自動生成だけを行うタスクです。 DBFluteの(自動生成に関する)設定を変更したり、DBFluteをアップグレードしたりする場合に実行します。

JDBC, Doc, Generate, Sql2Entity とまとめて実行します。

e.g. Regenerateタスクを実行するManageタスク @Command
...$ sh manage.sh regenerate

途中でどれかのタスクが中断した場合は、Regenerateタスク自体が中断となります。

第二引数による指定は特にありません。

Refreshタスク

Eclipse上のプロジェクトをリフレッシュ(F5)するだけのタスクです。 例えば、Mavenなどの外部ツールで Eclipse 管理のリソースを修正したような場合に、 スクリプトなどでこのタスクと連携させておくと自動的に Eclipse が認識するようになります。

e.g. Refreshタスクを実行するManageタスク @Command
...$ sh manage.sh refresh

利用するためには refreshDefinitionMap.dfprop が定義されている必要があります。

第二引数を特に何も指定しなかった場合は、refreshDefinitionMap.dfprop で指定されているプロジェクトがリフレッシュされます。 第二引数でプロジェクト名を指定した場合は、その指定されたプロジェクトだけがリフレッシュされます。スラッシュ区切りで複数のプロジェクトも指定できます。

e.g. Refreshタスクを実行するManageタスク @Command
...$ sh manage.sh refresh foo-prj/bar-prj

TakeAssertタスク

ReplaceSchema の 最終チェック(TakeFinally)でのデータ整合性チェックのSQLだけを実行するタスクです。 @since 0.9.9.1A

e.g. TakeAssertタスクを実行するManageタスク @Command
...$ sh manage.sh take-assert

TakeFinally で実行対象のSQLの中のうち、データ整合性チェックのSQLだけが実行されます。 結合環境のデータや本番環境のデータなどの不整合なデータをチェックしたいような場合に有効です。

このタスクでDBに対して更新がかかることはありません。仮に update文にassertコメント が付与したとしてもトランザクションはロールバックされますし、assertコメントが付与されているものは、JDBCドライバの select 専用のメソッド経由で実行されるため、DBMSによってはエラーで防ぐことができます。

アサート処理の仕様は、TakeFinallyと同じです。不整合なデータが見つかった場合は、DBFluteクライアント/log 配下に take-assert.log という名前で例外メッセージが出力されます。このファイルは実行のたびに上書きされます。 このタスクの細かい実行ログは、通常のタスクと同じくコンソールと dbflute.log に出力されます。

FreeGenタスク

DBのメタデータに限らず、アプリ側で自由なリソースから自由にソースを自動生成するタスクです。 @since 0.9.9.7B

e.g. FreeGenタスクを実行するManageタスク @Command
...$ sh manage.sh freegen

例えば、メッセージリソースなどの .properties ファイルを読み込んで、キー値の定数定義クラスやメッセージ文字列を構築するクラスを作ることができます。 また、エクセルの定義書を読み込んで、それに対応するクラスを生成するなど、様々なリソースを想定した仕組みとなっています。

LoadDataReverseタスク

LoadDataReverse を実行するタスクです。 @since 0.9.9.7B

e.g. LoadDataReverseタスクを実行するManageタスク @Command
...$ sh manage.sh load-data-reverse

SchemaSyncCheckタスク

SchemaSyncCheck を実行するタスクです。 @since 0.9.9.7B

e.g. SchemaSyncCheckタスクを実行するManageタスク @Command
...$ sh manage.sh schema-sync-check

AlterCheckタスク

AlterCheck を実行するタスクです。 @since 0.9.9.7B

e.g. AlterCheckタスクを実行するManageタスク @Command
...$ sh manage.sh alter-check

SavePreviousタスク

AlterCheckで利用する SavePrevious を実行するタスクです。 @since 0.9.9.7B

e.g. SavePreviousタスクを実行するManageタスク @Command
...$ sh manage.sh save-previous

Upgradeタスク

DBFluteのアップグレードを行うタスクです。@since 1.0.5K