Wie setze ich Süd-Migrationen zurück, um den aktuellen Zustand meiner Django-Modelle zu erfassen

8

Ich habe eine App, die derzeit 35 Migrationen im Süden hat. Diese benötigen beim Einrichten einer neuen Bereitstellung eine gewisse Zeit (wir erstellen häufig neue Bereitstellungen), und die App wird ständig weiterentwickelt - durch Hinzufügen weiterer Migrationen. Darüber hinaus beinhalten die Migrationen einige potentiell komplexe Datenmigrationen und einige benutzerdefinierte Migrationen, die SQLite3 zerstören (kein großes Problem, da alles auf Postgres läuft, aber es ist schön, eine schnelle Testumgebung einzurichten) und generell nur mehr Dinge, die schiefgehen können.

Alle unsere Bereitstellungen und Entwickler sind auf dem neuesten Stand, und ich möchte alle Migrationen der App löschen und eine einzige anfängliche Migration (0001) erstellen, die den aktuellen Status der App erfasst und dann weitergeht neue Migrationen von dort. Ich habe das vor ein paar Jahren mit einer anderen App gemacht, und es hat gut geklappt, aber ich habe seitdem vergessen, was der Prozess war und den Überblick über den Blogpost verloren habe, der erklärt hat, wie es geht. Kann jemand diesen Prozess für mich abbrechen?

    
Ben Roberts 10.10.2012, 15:06
quelle

1 Antwort

13

Ich habe das herausgefunden (war nicht so schlimm). Um das Zurücksetzen der Migration einzurichten, mache ich Folgendes:

%Vor%

Ich übergebe die Änderungen an das Repository und führe dann für jede Implementierung des Codes wo anders aus:

%Vor%

Stellen Sie sicher, dass Sie zwischen dem Zeitpunkt der letzten Migration an keiner anderen Stelle etwas Neues hinzugefügt haben und dass Sie Dinge zurücksetzen oder die neue 0001-Migration nicht mit dem Schema übereinstimmt!

Vorbehalte: Siehe guettlis Kommentar (und meine Antworten)

    
Ben Roberts 10.10.2012, 15:30
quelle

Tags und Links