2

同様の問題に出くわしました サウスが異なるアプリ間でどの移行順序に従いますか? ここで、異なるアプリ (たとえば、app_a と app_b) からの移行は、機能するためにインターリーブする必要がありますが、デフォルトでは、South は最初に app_a からのすべての移行を実行し、次に app_b からのすべての移行を実行します。

依存関係を手動で指定して機能させる方法があることは知っていますが、移行が実行された方法のグローバルな順序が南によって記録される可能性があるため、これは不要のように思われます。

では、South にグローバル移行履歴を記憶させ、依存関係を自動的にセットアップさせる良い方法はありますか?

4

1 に答える 1

2

私はそれが必要だとは思わない.移行が実行される順序を記録すると、必要以上の依存関係が発生する. 依存関係を自分で指定する必要があるのは、どの依存関係が他の依存関係より先に来る必要があるかを知っているからです。

また、移行が実行される順序は実際には「存在」しません。単純に、複数のデータベース (ローカル、開発、運用) と、それぞれがいくつかの移行を持つアプリのセットがあります。これらの移行は単に実行する必要があり、依存関係の数をできるだけ少なくする必要があります。すべての移行を実行する必要がある特定の順序を 1 つ指定することは、不必要な制限です。

別の開発者が別の順序でアプリを移行することを決定した場合、それは可能であるはずです。唯一の制限は、depends_onで指定したハード依存関係です。

現在は手作業が増えているかもしれませんが、アプリがあまり絡み合っていない場合は、アプリ間の依存関係が多すぎないはずです。もしそうなら、それらのアプリはあなたが思っていたよりも関連性が高いので、それらのアプリをマージすることを検討する必要があるかもしれません?

于 2012-08-24T14:52:16.623 に答える