无法在Heroku上运行Django / Postgres应用程序设置

时间:2014-03-26 22:12:14

标签: python django postgresql heroku

我正在使用Django模板的两个Scoops创建一个Django应用程序。得到这个Heroku错误,我的Postgres生产设置关闭了吗?

  • /的OperationalError 无法连接到服务器:连接被拒绝 服务器是否在主机上运行" localhost" (127.0.0.1)并接受 端口5432上的TCP / IP连接?
  • 例外地点:/app/.heroku/python/lib/python2.7/site-packages/psycopg2/__init__.py
  • 领班开始工作正常
  • Procfile:web: python www_dev/manage.py runserver 0.0.0.0:$PORT --noreload
  • local.py设置:

    DATABASES = {     '默认':{         ' ENGINE':' django.db.backends.postgresql_psycopg2',         ' NAME':' www',         '用户':' amyrlam',         ' PASSWORD':' * ',         ' HOST':' localhost',         ' PORT':' 5432',     } }

  • production.py设置:从上面注释掉本地设置,添加了标准的Heroku Django东西:

    导入dj_database_url DATABASES ['默认'] = dj_database_url.config()

    SECURE_PROXY_SSL_HEADER =(' HTTP_X_FORWARDED_PROTO',' https')

    ALLOWED_HOSTS = [' *']

    导入操作系统 BASE_DIR = os.path.dirname(os.path.abspath( file )) STATIC_ROOT ='静态文件' STATIC_URL =' / static /'

    STATICFILES_DIRS =(     os.path.join(BASE_DIR,'静态'), )

  • 更新:生产设置,尝试更改:

导入dj_database_url DATABASES ['默认'] = dj_database_url.config(默认= os.environ [" DATABASE_URL"])

(将我的Heroku颜色URL命名为DATABASE_URL,heroku配置中的相同链接)

1 个答案:

答案 0 :(得分:3)

您是否设置了DJANGO_SETTINGS_MODULE环境变量?我相信发生的事情是这样的:默认情况下,Django正在使用您的local.py设置,这就是它尝试在localhost上连接的原因。

要让Django检测并使用您的production.py设置,您需要执行以下操作:

heroku config:set DJANGO_SETTINGS_MODULE=settings.production

这将使Django在您使用Heroku时加载您的production.py设置:)