Wie kann ich eine Migration mit dem Django Migrationsbefehl überspringen?

9

Zuerst frage ich nach Django-Migration, die in 1.7 eingeführt wurde, nicht south .

Angenommen, ich habe die Migrationen 001_add_field_x , 002_add_field_y , und beide werden auf die Datenbank angewendet. Jetzt ändere ich meine Meinung und entscheide mich, die zweite Migration rückgängig zu machen und sie durch eine andere Migration 003_add_field_z zu ersetzen.

Mit anderen Worten, ich möchte 001 und 003 anwenden und 002 überspringen, wie kann ich das tun?

P.S. Ich weiß, dass ich rückwärts zu 001 migrieren kann, aber nachdem ich die 003-Migration gemacht und den migrate-Befehl ausgeführt habe, werden 001 bis 003 alle angewendet, richtig?

    
NeoWang 12.07.2015, 15:31
quelle

2 Antworten

25

Sie können die Option --fake verwenden.

Sobald Sie zu 0001 zurückkehren, können Sie

ausführen %Vor%

und dann

ausführen %Vor%

was in diesem Fall nur 0003 betrifft.

Wenn Sie diesen Prozess nicht für alle Umgebungen / andere Entwickler ausführen möchten, können Sie einfach die Migrationsdateien entfernen und ein neues makemigration ausführen und diese Datei festschreiben - und ja, führen Sie migrate mit aus die Option --fake

    
karthikr 12.07.2015, 15:47
quelle
2

Gilt nicht für diesen speziellen Fall, aber wenn Sie alle nicht angewendeten Migrationen überspringen wollen oder müssen, kann dies verwendet werden:

%Vor%

Spart nur ein bisschen Tippen.

    
Nagev 22.09.2017 09:44
quelle