django プロジェクトで south を移行ツールとして使用したいのですが、マルチユーザー シナリオで south を使用すると問題が発生します。
異なるマシンで同時に作業している 2 つの開発者が、同じ番号の 2 つの移行を作成します
最初の PC で:
0007_extend_lizard.py
2 番目の PC で:
0007_swap_name_adopter.py
この場合、実行./manage migrate --merge
または./manage migrate 0006
(ロールバック) して再度 ./manage migrate
実行できます。models.py
しかし、新しいフィールドを追加して実行したい場合./manage startmigration southdemo --auto
、南はmodels = {}
最後の移行からメタデータを取得し、最初の移行からの情報が欠落しています。この結果、移行 0008 が作成され、最初の 0007 から再び (!!!) 変更が作成されます。
この問題を解決する最善の方法は何ですか?
現在、私は2つのオプションについて考えています:
両方の 0007 移行を手動で 1 つのファイルにマージしてから移行します (ただし、「ロールバック」を実行する必要があります)。
models = {}
不足しているメタを最後の 0007 移行に手動で移動すると--auto
、0008 の次の移行が完全に機能します。
より良いオプションは何ですか? それとも、私が見逃しているものがありますか?