gpt4 book ai didi

django - OperationalError 无法连接到服务器

转载 作者:行者123 更新时间:2023-12-04 08:49:14 24 4
gpt4 key购买 nike

我最近在 Heroku 上放了一个 Django 应用程序。主页看起来不错,但是当我尝试转到涉及进行查询的页面(例如 p = Photo.objects.get(title=title) )时,出现此错误:

could not connect to server: Connection refused
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?

按照 this answer ,我做了 $ heroku pg:promote HEROKU_POSTGRESQL_GREEN_URL
然后在我的 settings.py 中:
DATABASES = {'default': dj_database_url.config(default=os.environ['DATABASE_URL'])}
仍然出现相同的错误,所以我尝试查看结果(如 this answer 建议的那样):
$ heroku run python manage.py shell

>>> from django.conf import settings

>>> print settings.DATABASES['default']

{'TIME_ZONE': 'UTC', 'TEST_MIRROR': None, 'NAME': 'snorthway', 'OPTIONS': {},
'HOST': 'localhost', 'TEST_NAME': None, 'PASSWORD': '******', 'ENGINE':
'django.db.backends.postgresql_psycopg2', 'PORT': '', 'USER': 'snorthway',
'TEST_COLLATION': None, 'TEST_CHARSET': None}

那时我意识到我什至不知道我应该在其中寻找什么。我仍然不明白错误的含义,所以我不确定如何调试它。

最佳答案

您没有在 settings.py 中正确配置 django 数据库。它认为您的数据库在本地主机上。听起来你有一个 heroku postgres 数据库,所以你的主机应该是这样的:

df3-64-304-50-250.compute-1.amazonaws.com



Heroku 通过名为的环境变量公开一个特殊的数据库 URL:

DATABASE_URL



这里有一个很酷的python包,叫做dj_database_url: https://github.com/kennethreitz/dj-database-url它将该环境变量转换为 django 所期望的。

你可以安装它:

$pip install dj-database-url



我在 settings.py 中使用以下内容
import dj_database_url
DATABASES = {
'default': dj_database_url.config()
}

关于django - OperationalError 无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com