私はGrails 2.xでモジュール式アプリケーションを開発しており、すべてのプラグイン/モジュールがgrails-appで独自の移行をホストするようにデータベース移行を構成したいと思います/ migrationsフォルダに移動します。 (すべての移行を作成アプリケーションプロジェクトの移行フォルダに入れるのとは対照的に)アプリケーションの変更履歴にGrailsプラグインの移行を含める
作成アプリケーションプロジェクト自体は通常、プラグインに格納されているのでマイグレーションはありません。
アプリケーションプロジェクトに「マスター」チェンジログを作成し、プラグイン移行ファイルのみを適切な順序で参照できますか?このようにして、プラグインの依存関係の問題を処理する非常にきれいで移行しやすいシステムを作成することもできます(プラグインの依存関係を尊重する順序でプラグインの移行ファイルを配置します。 )。
デフォルトでは、Database Migrationsプラグインはプラグインの移行(私の場合はインラインプラグイン)をまったく確認/実行していないようです。ドキュメントではこのシナリオについては何も言及していませんが、モジュール化されていない簡単な開発ワークフローに集中しています。
私はDB Migrationsプラグインの問題を解決しましたが、これはアプリのマイグレーションディレクトリの外でマイグレーションファイルを実行することを許可していますが、それは非常にエレガントではない相対/絶対パスのハードコーディングを使用すると仮定します。
もっとも洗練されたソリューションは、マイグレーションの「include」ステートメントごとにプラグインを指定できれば、私のマスターチェンジログはこのようになります。
databaseChangeLog = {
include plugin:'core' ,file:'000-initial.groovy'
include plugin:'accounting' ,file:'000-initial.groovy'
include plugin:'core' ,file:'001-drop-constr-XXX.groovy'
include plugin:'accounting' ,file:'001-add-col-yyy-to-posting-table.groovy'
}
現在のDatabase Migrations Pluginと同様の機能を実装できますか?
ご意見・ご感想はありがとうございます。
ありませんリンクが装着されています。 –