服从测试山羊-OperationalError

时间:2019-03-05 14:39:46

标签: python django django-testing django-migrations

我正在服从测试山羊皮书,偶然发现了此错误:

django.db.utils.OperationalError: table lists_item has no column named list_id

仅当我在开发服务器上时(当我运行测试时,它就像一个超级按钮一样出现)。

这本书解释说here有可能发生:

  

如果使用manage.py runserver启动开发服务器,则可能会遇到数据库错误“表list_item没有名为list_id的列”。您需要更新本地数据库以反映我们在models.py中所做的更改。使用manage.py迁移。如果它使您对IntegrityErrors感到不安,则只需删除[1]数据库文件,然后重试。

我正在按照说的去做,但是错误并没有消失。也许有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

Django的makemigrations负责创建new migrations based on the changes detected to your modelshttps://docs.djangoproject.com/en/2.1/ref/django-admin/#django-admin-makemigrations)。

您应该先运行makemigrations,再运行migrate,因为后者会将前者检测到的新迁移应用于数据库。