sno*_*way 8 django heroku-postgres
我最近在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?
Run Code Online (Sandbox Code Playgroud)
根据这个答案,我做到了$ heroku pg:promote HEROKU_POSTGRESQL_GREEN_URL
然后在我的settings.py中:
DATABASES = {'default': dj_database_url.config(default=os.environ['DATABASE_URL'])}
仍然有同样的错误,所以我试着看看这个结果(正如这个答案所示):
$ 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}
Run Code Online (Sandbox Code Playgroud)
在那一点上,我意识到我不知道我应该在那里寻找什么.我仍然不明白错误意味着什么,所以我不确定如何调试它.
您尚未在 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 安装 dj-database-url
我在 settings.py 中使用以下内容
import dj_database_url
DATABASES = {
'default': dj_database_url.config()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2907 次 |
| 最近记录: |