2012-04-01 7 views
0

私はアプリケーションでデータベース移行プラグインを使用していますが、DBスキーマの依存関係を持つ他のプラグインを使用しているときに問題があります。Grailsでは、他のプラグインの前に実行するようにデータベース移行プラグインを設定することは可能ですか?

新しくインストールされたプラグイン(taxonomyプラグインなど)を使用するための準備として、マイグレーションプラグインを使用して自分のDBをセットアップ/リファクタリングします。問題は、マイグレーションプラグインが他のプラグインの後にロードされるため、マイグレーション(スキーマ依存関係は適用されません)を実行する前にアプリケーションが失敗してしまうことです。 DB移行は他のプラグインよりも前に実行する必要があります(99%のケースで)。正しい?

マイグレーションプラグインを最初にロードする方法はありますか(「def loadBefore」でマイグレーションプラグインをカスタマイズしないでください)

おかげ

答えて

1

プラグインのDEPENDSONloadAfterプロパティは、プラグインの開発者によって設定されているUnfortunaltely。

しかし、あなたは新しい環境を作成し、プラグインの数を除外するために、次の設定プロパティに grails.plugin.excludesを使用することができます。

基本的には、データベースの移行に使用するgrails環境を定義します。私はこのような環境のためのデータソースを定義し、そしてConfig.groovyに:

environments { 
    prodMig { 
    grails.plugin.excludes = 'interferingPlugin1,interferingPlugin2' 
    } 
} 

これは、プラグインplugin1干渉し、あなたのprodMig環境から-plugin2での干渉を排除します。

は、その後、あなたがこのようなあなたのdatabse移行コマンドを実行できます。

grails -Dgrails.env=prodMig dbm-update 
+0

面白いアイデア、病気それを試してみる必要があります。ありがとう – tinny

関連する問題