首页 > 解决方案 > 服从测试山羊 - OperationalError

问题描述

我正在阅读 Obey the testing goat book 并偶然发现了这个错误:

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

它仅在我在开发服务器上时出现(当我运行测试时,它就像一个魅力)。

这本书解释说它可能发生在这里

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

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

标签: pythondjangodjango-testingdjango-migrations

解决方案


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

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


推荐阅读