【发布时间】:2018-07-13 08:09:39
【问题描述】:
我正在尝试在this guide 的指导下将一个基本的 Wagtail Django 站点 (pip install wagtail) 推送到 Heroku,并得到 the Heroku docs 的指导,我遇到了一个非常常见的 postgres 连接错误(如下)。我可以从仪表板上看到 Heroku 正在提供实时数据库,我可以使用 heroku pq:psql 访问它。
项目在本地运行,当我运行 heroku local 时也运行。
我的 `project/app/settings/production.py' 已按照建议设置:
import os
env = os.environ.copy()
SECRET_KEY = env['SECRET_KEY']
from __future__ import absolute_import, unicode_literals
from .base import *
DEBUG = False
try:
from .local import *
except ImportError:
pass
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
print('check')
print(DATABASES)
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# Allow all host headers
ALLOWED_HOSTS = ['*']
Procfile(位于 repo 的根目录)
web: gunicorn myproj.wsgi:application --log-file -
myproj/wsgi.py
from __future__ import absolute_import, unicode_literals
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproj.settings.dev")
application = get_wsgi_application()
我得到的错误:
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/base/base.py", line 189, in connect
self.connection = self.get_new_connection(conn_params)
File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
connection = Database.connect(**conn_params)
File "/app/.heroku/python/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
谁能帮忙?
【问题讨论】:
-
那个设置文件有一些打印语句;它们在日志中可见吗?如果不是,则表明该文件根本没有被拾取。
-
是的,我把它们放在那里是为了检查,但我不清楚我应该在哪里看到它们,即在哪里自然会调用设置。
heroku logs没有显示完整的日志记录信息,并且我的错误所在的回溯(我发布了一些)没有提及尝试访问设置。我要去哪里看?谢谢! -
我刚刚注意到您的设置名为 production.py。你是如何告诉 Django 使用该文件的?显示您的 Procfile 和 wsgi.py。
-
我已将这些添加到我的问题中。其中很多是 Wagtail 样板:pypi.org/project/wagtail
标签: python django postgresql heroku wagtail