我无法将我的django应用程序部署在heroku上以使用我当地的postgres数据库。
我的数据库设置如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'foo',
'PASSWORD': 'bar',
'HOST': 'localhost',
'PORT': '',
}
}
一切都在当地运行良好。按照https://devcenter.heroku.com/articles/django的说明,我将以下位代码添加到设置文件的底部:
import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://foo:bar@localhost/mydb')}
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
但是,这会产生以下错误:
在/无法连接到服务器的OperationalError:连接被拒绝服务器是否在主机“localhost”(127.0.0.1)上运行并接受端口5432上的TCP / IP连接?
我的django应用程序在Heroku上运行正常,除非它需要连接到数据库,这是它抛出此错误的地方。
任何人都知道我在这里做错了吗?
答案 0 :(得分:1)
简单地说,您当前的配置将数据库主机定义为localhost
,而您应将其指向主机公共IP(或完全限定的域名)。
但这似乎是一种反模式。你真的应该使用Heroku的开发数据库来做这些事情,如果你有任何本地数据你想在那里导入,只需要进行数据库转储并加载它。
答案 1 :(得分:0)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'your db name',
'USER': 'your username',
'PASSWORD': 'password',
'HOST': 'Your computer's IP',
'PORT': '6122',
}
或者您必须将本地数据库克隆到heroku postgres并更改您的设置以使用该数据库。