2016-04-28 14 views
2

私は、すべてのカスタムタイプまたはパートに対して個別のマイグレーションクラスを保持する習慣があります。私は、同じタクソノミのタクソノミーフィールドをいくつかのカスタムパーツに付けたいと思っています。どの移行が最初に実行されるかわからないので、各移行でタクソノミーがすでに存在するかどうかをチェックし、そうでない場合は作成して、重複したコードが多数作成されるようにする必要があります。再利便性/保守性のために私のコードをサービスに移すことはできましたが、どの移行が最初に実行されるのかが分かっていればさらに簡単になりました。Orchardで実行される移行はどのような順序ですか?

+0

私は発見されたモジュールとクラスの順番で、マイグレーションにブレークポイントを設定してコールスタックを監視すると思います。基本クラスのどこかにループがあるはずです。 – ViRuSTriNiTy

答えて

2

依存関係の順番で実行してください。依存関係はモジュールによって終わります。

しかし、このような場合は、移行ではなくレシピを試してみるとよいでしょう。

+0

ありがとう!したがって、自分の目的のためにレシピを使用できないとし、複数のカスタムモジュールを複数のマイグレーションファイルで構成しているサイトがあるとします。これらのマイグレーションのどれが最初に実行されるかはまだ完全にはわかりません。すべてのモジュールには同じ依存関係があり、モジュール内での移行の順序はアルファベット順でないか、作成日または変更日ではわかりません。マイグレーションを別のモジュールに入れて、他のすべてのモジュールに依存させることもできますが、簡単にするために、将来私はこのために静的メソッドを使用します。 – Lawyerson

関連する問題