In Djangos Migrationscode gibt es einen squashmigrations
Befehl, der: "Die Migrationen für app_label
bis einschließlich migration_name
auf weniger Migrationen reduziert, wenn möglich."Wie kann man die letzten Django-Migrationen erzwingen?
Also, wenn Sie, sagen wir, die ersten 5 Migrationen Squash wollen, wird dies helfen.
Was ist der beste Weg zum Squash Start mit einem bestimmten migration_name
?
In einem Projekt, an dem ich gerade arbeite, haben wir 5-10 neue Migrationsdateien hinzugefügt, da wir neue Funktionen hinzugefügt haben. Wir werden das gesamte Projekt auf einmal bereitstellen, und es sieht so aus, als würde es zu lange dauern, diese einzeln auszuführen. Ich möchte alle Migrationen für dieses Projekt in eine einzige Migration zerlegen und die Zeit testen, um das auszuführen.
Update dazu - nach Quetschen und Testen dauerte es viel zu lange. Ein großer Teil davon war, weil MySQL für jede Spalte, die ich hinzufügte, die gesamte Tabelle kopieren, die Spalte hinzufügen und dann die Tabelle umbenennen würde. Ich benutzte 'sqlmigrate', um das SQL zu betrachten, das ausgeführt werden würde, und kombinierte vier separate ALTER TABLE-Anweisungen zu einem mit vier ADD COLUMN-Abschnitten und führte dies mit' migrations.RunSQL' mit dem 'state_operations'-Argument durch, um die Logik des Migrationsstatus glücklich zu halten. –