2016-10-14 7 views
0

Ich habe eine maßgeschneiderte Migration:Django Unapply Migration

class Migration(migrations.Migration): 

    dependencies = [('blah', 'my_previous_migration'),] 

    operations = [ 
     migrations.RunSQL(
      sql=[("SQL HERE")], 
      reverse_sql=[("SQL UNDO HERE")]) 
    ] 

Diese Migration ist bereits angelegt. Ich mag eine Migration schaffen, dass die Migration rückgängig zu machen, im Grunde nach dem, was die docs sagen: unapply migration

Aber ich kann keinen Hinweis finden, wie eine Migration auf Unapply oder eine Migration hat den reverse_sql Teil der Migration laufen.

+0

die Migration Snippet lokal angewendet oder haben Sie dies bereits mit Öffentlichkeit geteilt/Projekt oder Produktion einstellen? – dahrens

+0

es ist bereits auf prod, deshalb brauche ich eine Migration, um diese rückgängig zu machen. – PepperoniPizza

Antwort

1

Lassen Sie uns das Schnipsel accident und das zusätzliche fix nennen.

Wenn Sie benutzerdefinierte SQL-Migrationen schreiben, sollten Sie normalerweise den umgekehrten Teil angeben, andernfalls können Sie ihn nicht in den vorherigen Zustand zurückversetzen, ohne die Integrität Ihres Schemas und/oder Ihrer Daten zu verlieren.

accident sollte sql zur Verfügung stellen. Die fix, die accident zurück rollt sollte daher aus beiden Operationen bestehen.

Vielleicht möchten Sie danach about squashing migrations lesen.

EDIT: Der Begriff Operationen könnte durch verwirrend, da es Teil des Migrationssystems :) ist - wird sagen: Austausch sql und reverse_sql in fix Migration