如何修复Django错误“异常类型:OperationalError 异常值:没有此表?”
我终于安装好了一个Django项目所需的所有东西(我觉得是这样!),现在我想在我的Mac(OSX 10.4)上运行一个本地安装。
但是我遇到了以下错误:
错误信息:
操作错误在 /
没有这个表:django_content_type
请求方法:GET
请求网址:http://127.0.0.1:8000/
异常类型:操作错误
异常内容:
没有这个表:django_content_type
异常位置:/Users/Diesel/Desktop/DjangoWork/pinax-ev/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py
在执行时,第170行
Python可执行文件:/Users/Diesel/Desktop/DjangoWork/pinax-ev/bin/python
Python版本:2.5.1
3 个回答
这个错误出现的原因是你的数据库里没有相关的表信息,或者和你现有的数据库有冲突。比如说,你可能更改了数据库的列名或者数据库的名字。
下面的步骤可以帮助你解决这个错误。
在文件"setting.py"中查找INSTALLED_APPS = [],确保你的应用名称在里面。例如:INSTALLED_APPS = ['app'/{你的应用名称用引号括起来}]
运行以下命令:
python manage.py makemigrations app
(这里的'app'是你的应用名称,替换成你自己的名称)
python manage.py migrate
python manage.py runserver
我在使用Django 1.10版本时,需要执行以下操作:
python manage.py migrate --run-syncdb
- 你有没有运行过
./manage.py syncdb
来创建所有的数据库表? - 在你的
settings.py
文件中的 INSTALLED_APPS 里,有没有包含django.contrib.contenttypes
这个选项?
还有一个不太常见的第三种情况:
- 你的项目或应用是否使用了 Django 的 "South" 应用?如果是这样,你还需要运行
./manage.py migrate
来确保所有的表都被创建。
如果忘记了以上任何一项,ContentType 的表就不会被生成。