2010-02-26 7 views
6

Ich habe eine Migration:Django Süd Datenmigration läuft zweimal

... 

def forwards(self, orm): 
    for p in products.models.Product.objects.all(): 
     new = cart.models.Product(title = p.title) 
     new.save() 

    def backwards(): 
     ... 

Aber wenn ich es laufen wandern zweimal die Schleife durchläuft.

Antwort

8

tun Sie

no_dry_run = True 

in der Migration Definition haben?

Außerdem denke ich, sollten Sie orm.Product.objects.all()

5

werden unter Verwendung Dies geschieht, weil Süden zweimal ausgeführt: zum ersten Mal es nicht berühren DB, zum zweiten Mal Push Änderungen db.

Schnelle Lösung laufen ./manage migrate your_app --db-dry-run

Oder verwenden

if not db.dry_run:

in Ihrem Code in Vorwärts/Rückwärts-Abschnitte

hier diskutiert http://south.aeracode.org/ticket/138

Verwandte Themen