2010-02-26 64 views
6

我有一个迁移:南Django的数据迁移正在运行两次

... 

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

    def backwards(): 
     ... 

但是当我运行迁移它通过循环运行的两倍。

回答

8

你有

no_dry_run = True 
在迁移定义

此外,我认为你应该使用orm.Product.objects.all()

5

这是因为南运行两次:第一次它没有触及DB,第二次推更改数据库。

快速解决方案运行./manage migrate your_app --db-dry-run

或者使用

if not db.dry_run:

在你的代码中的前进/后退部分

这里讨论http://south.aeracode.org/ticket/138