如何在/ admin /'修复' OperationalError?当我将Django项目推送到Heroku时?

时间:2015-05-28 11:28:12

标签: python django python-2.7 heroku

我在线阅读教程,在Django的测试服务器中查看和访问我的管理面板没有问题。我可以在那里编辑模型。当我将项目推送到Heroku并尝试从那里访问管理面板时,我收到此错误:

OperationalError at /admin/
no such table: django_session
Request Method: GET
Request URL:    https://gentle-lowlands-8347.herokuapp.com/admin/
Django Version: 1.8.1
Exception Type: OperationalError
Exception Value:    
no such table: django_session
Exception Location: /app/.heroku/python/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py in execute, line 318
Python Executable:  /app/.heroku/python/bin/python
Python Version: 2.7.9
Python Path:    
['/app',
 '/app/.heroku/python/bin',
 '/app/.heroku/python/lib/python2.7/site-packages/setuptools-16.0-py2.7.egg',
 '/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg',
 '/app',
 '/app/.heroku/python/lib/python27.zip',
 '/app/.heroku/python/lib/python2.7',
 '/app/.heroku/python/lib/python2.7/plat-linux2',
 '/app/.heroku/python/lib/python2.7/lib-tk',
 '/app/.heroku/python/lib/python2.7/lib-old',
 '/app/.heroku/python/lib/python2.7/lib-dynload',
 '/app/.heroku/python/lib/python2.7/site-packages']
Server time:    Thu, 28 May 2015 11:14:19 +0000

我认为在我尝试运行时可能会出现问题:heroku run python mange.py syncdb

我创建了一个超级用户。尝试访问管理面板没有任何作用。

我觉得它与迁移我的数据库以及我的settings.py文件中的某些内容有关。我真的不知道。我已经研究并搞砸了好几天。

如果有人可以看看并帮助我:https://github.com/jltsao88/coffeedapp

2 个答案:

答案 0 :(得分:0)

在您的设置中,ON_HEROKU实际上永远不会等于True,因为环境变量总是字符串。这意味着永远不会设置您的数据库设置。

相反,你应该只检查布尔真值:

if ON_HEROKU:
    ...

答案 1 :(得分:0)

发生此错误是因为Django无法找到表django_session以便将会话写入其中。根据我的经验,这种情况没有运行migrate或表已被手动删除。

我建议你检查以下内容:

  • 您的settings.py文件,以检查DATABASES是否显示Heroku提供的正确数据库。
  • 使用您在settings中指定的凭据自行访问数据库,以查看数据库是否可访问。
  • 确保您已运行manage.py migrate

我不熟悉Heroku服务,但我确信他们提供了一些关于如何为您的应用设置和访问数据库的文档。

您也可能为开发服务器和实时服务器维护单独的settings.py文件。