对于尚未引入的列,Django South迁移失败,列不存在

时间:2013-07-31 14:21:58

标签: django-south

在应用程序上,我一次性从0023-0027运行多个迁移。但第一次迁移是抱怨它缺少一个直到晚些时候才会引入的列。

Running migrations for blogs:
- Migrating forwards to 0027_auto
> blogs:0023_auto
Error in migration: blogs:0023_auto

错误如下:

django.db.utils.DatabaseError: column blogs_blog.author_bio does not exist
LINE 1: ...log"."author_name", "blogs_bl...

所以任何想法为什么迁移0023会失败而错过了在迁移0027之前没有引入的列?

1 个答案:

答案 0 :(得分:2)

问题在于转发功能中自动生成的0023迁移具有以下内容:

        for a in Blog.objects.all():
            a.uuid = u'' + str(uuid.uuid1().hex)
            a.save()

根据最新内容调用模型,因此author_bio就在其中。 要修复它,然后从“orm”调用模型,如下所示:

        for a in orm.Blog.objects.all():
            a.uuid = u'' + str(uuid.uuid1().hex)
            a.save()