【问题标题】:Operational Error at / No such table after push to heroku推送到heroku后/没有这样的表出现操作错误
【发布时间】:2015-07-30 15:34:29
【问题描述】:

目前在本地环境下工作,但在推送到 heroku 并访问我的实时页面后,我在 / 处收到 OperationalError。看起来我根本无法运行任何 for 循环。我只想补充一下,我正在做 djangogirl 教程,并且是新手。

OperationalError at / no such table: blog_post

模板渲染时出错

在模板 /app/blog/templates/blog/post_list.html 中,第 5 行出错({% for post in posts %})

这里是 post_list.html

{% extends 'blog/base.html' %}

{% block content %}
    {% for post in posts %}
        <div class="post">
            <div class="date">
                {{ post.published.date }}
            </div>
            <h1><a href="{% url 'blog.views.post_detail' pk=post.pk %}">{{ post.title }}</a></h1>
            <p> {{ post.text|linebreaks }}</p>
        </div>
    {% endfor %}
{% endblock content %}

这是我的 .gitignore:

myvenv
__pycache__
staticfiles
local_settings.py
db.sqlite3

附加信息: 请求方法:GET 请求网址:https://girlsblog.herokuapp.com/ Django 版本:1.7.7 异常类型:操作错误 异常值:
没有这样的表:blog_post 异常位置:/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py 在执行中,第 485 行 Python 可执行文件:/app/.heroku/python/bin/python Python版本:2.7.9 Python 路径:
['/应用程序', '/app/.heroku/python/bin', '/app/.heroku/python/lib/python2.7/site-packages/setuptools-15.2-py2.7.egg', '/app/.heroku/python/lib/python2.7/site-packages/pip-6.1.1-py2.7.egg', '/应用程序', '/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'] 服务器时间:2015年5月18日星期一19:20:07 -0500

【问题讨论】:

    标签: html django heroku operationalerror


    【解决方案1】:

    您是否在 heroku 上运行了初始迁移?

    $ heroku run bash
    $ ./manage.py migrate
    

    【讨论】:

    • 我没有,我试过了,但我不确定你所说的会发生什么。如果我执行 heroku run bash (在我的虚拟环境中),它会“运行”,但随后会留下 w/ ~ $ (无路径)。我很困惑该怎么做。我一直在使用 git 并且不必迁移。
    • 您有时会在本地计算机上运行 syncdb 或 migrate(取决于您的 django 版本)来创建数据库模式。在 Heroku 上,您还需要运行该命令来创建数据库模式。在 heroku ( $ heroku run bash ) 上打开 bash 控制台后,如果你运行 ./manage.py migrate,错误就会消失。 docs.djangoproject.com/en/1.8/topics/migrations
    • @djangogirl 我现在看到您正在运行 django 1.7,其中 ~ $(无路径)运行 ./manage.py migrate 并且您的错误将消失,因为您的数据库架构将被创建跨度>
    • 是的,我一开始进行了一次迁移,但之后就没有了。在 bash 中执行“./manage.py migrate”后,我得到“bash: ./manage.py: Permission denied”
    • 另外,如果我只是去我的虚拟环境,并执行 python manage.py migrate 它说没有迁移应用。
    【解决方案2】:

    我在 Heroku 应用程序中遇到了完全相同的错误。

    blog/settings.py 中添加它会修复它。

    这将从 $DATABASE_URL 更新数据库配置。

    import dj_database_url
    db_from_env = dj_database_url.config(conn_max_age=500)
    DATABASES['default'].update(db_from_env)
    

    来源: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Deployment

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 2015-07-31
      • 2013-10-21
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多