Manageタスク
- Manageタスクとは?
- 実行コマンド
- 環境構築
- Renewalタスク
- Regenerateタスク
- Refreshタスク
- TakeAssertタスク
- FreeGenタスク
- LoadDataReverseタスク
- SchemaSyncCheckタスク
- AlterCheckタスク
- SavePreviousタスク
- Upgradeタスク
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