部署Django应用程序的本地Postgres数据库到Heroku的?(Deploying Djan

2019-10-30 02:05发布

我unsuccesfully让我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在/无法连接到服务器:连接被拒绝在服务器上的主机“本地主机”(127.0.0.1)和接收端口5432的TCP / IP连接上运行?

我的Django应用程序运行正常在Heroku上,除非它需要连接到数据库,这是它抛出这个错误。

任何人都知道我在做什么错在这里?

Answer 1:

  1. 允许远程Postgres的访问本地数据库。 例
  2. 设置文件更改为这样的事情:

数据库= {

  '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的和更改设置,使用分贝。



Answer 2:

简单地说,当前的配置数据库主机定义为localhost ,而你应该在你的主机的公网IP(或完全合格的域名)是指向它。

但是,这似乎是一个反模式。 你真的应该使用Heroku的开发数据库这个东西,如果你有任何的本地数据要导入那里,只是做一个数据库转储并加载它。



文章来源: Deploying Django app's local postgres database to heroku?