我正在服从测试山羊皮书,偶然发现了此错误:
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]数据库文件,然后重试。
我正在按照说的去做,但是错误并没有消失。也许有人可以帮助我吗?
答案 0 :(得分:0)
Django的makemigrations
负责创建new migrations based on the changes detected to your models
(https://docs.djangoproject.com/en/2.1/ref/django-admin/#django-admin-makemigrations)。
您应该先运行makemigrations
,再运行migrate
,因为后者会将前者检测到的新迁移应用于数据库。