无法让 Django/Postgres 应用程序设置在 Heroku 上运行

Amy*_*Lam 3 python django postgresql heroku

我正在使用“Two Scoops of Django”模板制作一个 Django 应用程序。收到此 Heroku 错误,我的 Postgres 生产设置是否已关闭?

  • 操作错误 / 无法连接到服务器:连接被拒绝 服务器是否在主机“localhost”(127.0.0.1) 上运行并接受端口 5432 上的 TCP/IP 连接?
  • 异常位置:/app/.heroku/python/lib/python2.7/site-packages/psycopg2/__init__.py
  • 工头启动工作正常
  • 过程文件:web: python www_dev/manage.py runserver 0.0.0.0:$PORT --noreload
  • local.py 设置:

    数据库= {'默认':{'引擎':'django.db.backends.postgresql_psycopg2','名称':'www','用户':'amyrlam','密码':'* ','主机': '本地主机','端口':'5432',} }

  • production.py 设置:注释掉上面的本地设置,添加标准的 Heroku Django 内容:

    导入 dj_database_url 数据库['默认'] = dj_database_url.config()

    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

    ALLOWED_HOSTS = ['*']

    import os BASE_DIR = os.path.dirname(os.path.abspath( file )) STATIC_ROOT = '静态文件' STATIC_URL = '/static/'

    STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )

  • 更新:生产设置,尝试更改:

导入 dj_database_url DATABASES['default'] = dj_database_url.config(default=os.environ["DATABASE_URL"])

(将我的 Heroku 颜色 URL 命名为 DATABASE_URL,heroku 配置中的相同链接)

rde*_*ges 5

您是否设置了 DJANGO_SETTINGS_MODULE 环境变量?我相信发生的事情是这样的:默认情况下 Django 使用您的local.py设置,这就是它尝试在本地主机上连接的原因。

要使 Django 检测并使用您的production.py设置,您需要执行以下操作:

heroku config:set DJANGO_SETTINGS_MODULE=settings.production

当您在 Heroku 上时,这将使 Django 加载您的 production.py 设置:)