首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Django应用的本地postgres数据库部署到heroku?

问将Django应用的本地postgres数据库部署到heroku?
EN

Stack Overflow用户
提问于 2013-07-22 00:37:02
回答 2查看 4.2K关注 0票数 1

我不成功地让我的django应用程序部署在heroku上,使用本地postgres db。

我的数据库设置如下:

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'foo',
        'PASSWORD': 'bar',
        'HOST': 'localhost',
        'PORT': '',
    }
}

当地一切都很好。按照https://devcenter.heroku.com/articles/django的说明,我在设置文件的底部添加了以下代码:

代码语言:javascript
复制
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 at /未能连接到服务器:服务器是否在主机"localhost“(127.0.0.1)上运行,并在端口5432上接受TCP/IP连接?

我的django应用程序在Heroku上运行良好,除非它需要连接到数据库,这是它抛出此错误的地方。

有人知道我在这里做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-22 00:45:11

  1. 允许远程postgres访问本地数据库。示例
  2. 将设置文件更改为以下内容:

数据库={

代码语言:javascript
复制
  '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,并更改设置以使用该数据库。

票数 0
EN

Stack Overflow用户

发布于 2013-07-22 07:39:29

简单地说,当前的配置将数据库主机定义为localhost,同时应该将其指向主机公共IP (或完全限定的域名)。

但这似乎是反模式。您确实应该使用Heroku的开发数据库来处理这些问题,如果您有任何本地数据想要导入,只需进行数据库转储并加载它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17778422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档