无法在 django 模型中添加新字段

Dea*_*ool 5 django django-models python-3.x makemigrations

姜戈2.0

我创建了一个模型Blog app

class Category(models.Model):
    field1 = models....
    field2 = models....
    field3 = models....
Run Code Online (Sandbox Code Playgroud)

一段时间后,我想在该模型中添加一个新字段。

class Category(models.Model):
    field1 = models....
    cover_pic = .models....
    field2 = models....
    field3 = models....
Run Code Online (Sandbox Code Playgroud)

我遵循了这个答案。但它给了我以下错误。

django.db.utils.OperationalError: (1054, "Unknown column 'blog_category.cover_pic' in 'field list'")

xyr*_*res 4

答案来自 2014 年的旧 Django 版本。

添加新字段的工作流程很简单:

  1. 为模型中的字段编写代码。
  2. 运行命令manage.py makemigrations
  3. 运行命令manage.py migrate

这些都在文档中。


因为您已经遵循了答案并运行了该manage.py --fake命令,所以您的数据库状态有点混乱。

要恢复,请执行以下操作:

  1. 转到“博客”应用程序的“迁移”文件夹。
  2. 查看迁移文件的名称。它们应该看起来像0001_category_field1.py, 0002_category_cover_pic.py
  3. 伪造的迁移将是名称类似于 的迁移0002_category_cover_pic.py。记下它的编号,例如0002
  4. 现在您必须返回到之前应用的迁移。因此,如果伪造的迁移编号为0002,则之前应用的迁移将为0001
  5. 现在运行这个命令 - manage.py migrate --fake myapp 0001。记下迁移文件的编号。您必须伪造另一次迁移回到之前应用的迁移文件。
  6. 现在运行命令 - manage.py migrate myapp.

这应该可以解决你的问题。