Django 2.0
我在Blog app
,
class Category(models.Model):
field1 = models....
field2 = models....
field3 = models....
过了一段时间后,我想在该模型中添加一个新字段。
class Category(models.Model):
field1 = models....
cover_pic = .models....
field2 = models....
field3 = models....
我跟着this回答。但它给了我以下错误。
django.db.utils.OperationalError: (1054, "Unknown column 'blog_category.cover_pic' in 'field list'")
答案 0 :(得分:1)
That答案来自2014年和旧的Django版本。
添加新字段的工作流程很简单:
manage.py makemigrations
。manage.py migrate
。这就是文档中的内容。
因为您已经按照that回答并运行了manage.py --fake
命令,所以您已经搞砸了db状态。
要恢复,请执行以下操作:
0001_category_field1.py, 0002_category_cover_pic.py
。 0002_category_cover_pic.py
的迁移。请注意其编号,例如0002
。 0002
,则先前应用的迁移将为0001
。 manage.py --fake myapp 0001
。记下迁移文件的编号。您将不得不伪造另一个迁移回原先应用的迁移文件。 manage.py migrate myapp
。这可以解决您的问题。
答案 1 :(得分:-1)
如果您的问题尚未解决且您的数据库中没有重要数据,我建议您从新的数据库启动数据库。删除所有数据库表,然后删除app_name/migration
文件夹中的所有迁移文件。现在运行这两个命令并开始开发。
python manage.py makemigrations
python manage.py migrate
现在你将有一个新的数据库,你很高兴。从下一次尝试按照上述评论中提到的方式。