Das Problem mit Teams und Migrationen tritt auf, wenn mehr als eine Person eine Migration in den gleichen Zeitschlitz macht, und sie bekommen beide engagierte ohne das andere aufgebracht wurde . Dies ist analog zu zwei Personen Bearbeitung der gleichen Datei in einem VCS zur gleichen Zeit, und wie ein VCS, hat South Möglichkeiten zur Lösung des Problems.
Wenn dies geschieht, das erste, was zu beachten ist, dass der Süd das Problem erkennt, und eine Meldung wie diese Ausgabe:
Inconsistent migration history
The following options are available:
--merge: will just attempt the migration ignoring any potential dependency
conflicts.
Wenn Sie erneut ausgeführt mit --merge
migrieren, Süd einfach gilt die Migrationen, die nicht in der Reihenfolge fehlten. Dies funktioniert normalerweise, da Teams an separaten Modellen arbeiten; Wenn dies nicht der Fall ist, müssen Sie die tatsächlichen Migrationsänderungen betrachten und sie manuell beheben, da wahrscheinlich einen Konflikt verursacht.
Das zweite, was zu beachten ist, dass, wenn Sie in einem fremden Modellwechsel komplett mit ihrer eigenen Migration ziehen, müssen Sie eine neue leere Migration machen, dass die Änderungen aus den beiden Zweigen der Entwicklung hat eingefroren (Wenn Sie mercurial verwendet haben, entspricht dies einem Zusammenführungs-Commit). Dazu einfach laufen:
./manage.py schemamigration --empty appname merge_models
(Beachten Sie, dass merge_models
ist nur eine Migration Namen, ändern Sie es für , was Sie wollen)
Die hier wichtige Botschaft ist, dass die Süd ist kein Ersatz für Team Koordination - in der Tat, die meisten Funktionen sind nur zu warnen Sie, dass Sie nicht koordiniert haben, und die einfache Zusammenführung im Angebot ist nur dort für die einfachen Fällen. Stellen Sie sicher, dass Ihr Team weiß, wer auf was arbeitet, so dass sie keine Migrationen schreiben, die die gleichen Teile von zur gleichen Zeit betreffen.
Es zeigt, dass es gut ist, die Dokumente zu lesen;) +1 – Tadeck