繁体   English   中英

当我将Django项目推送到Heroku时,如何解决“ / admin /处的OperationalError”?

[英]How do I fix 'OperationalError at /admin/' when I push a Django project to 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

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

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

if ON_HEROKU:
    ...

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

我建议您检查以下内容:

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

我对Heroku服务不熟悉,但可以肯定它们提供了一些有关如何为您的应用程序设置和访问数据库的文档。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM