6

我有一个迁移:

    ...

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

    def backwards():
        ...

但是当我运行 migrate 时,它​​会运行两次循环。

4

2 回答 2

8

你有

no_dry_run = True

在迁移定义中?

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

于 2010-02-26T09:13:42.480 回答
5

发生这种情况是因为 South 运行了两次:第一次它不接触 DB,第二次将更改推送到 db。

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

或使用

if not db.dry_run:

在前向/后向部分的代码中

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

于 2012-05-14T11:05:07.283 回答