1

在一个应用程序上,我一次运行从 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 才引入的列而失败吗?

4

1 回答 1

2

问题是 forwards 函数中自动生成的 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()
于 2013-07-31T14:58:17.173 回答