2014-03-26 67 views
3

我正在用Django模板的两勺制作Django应用程序。获取这个Heroku错误,我的Postgres生产设置关闭了吗?无法在Heroku上运行Django/Postgres应用程序设置

  • OperationalError在/ 无法连接到服务器:连接被拒绝 是在主机“本地主机”(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设置:

    数据库= { '默认':{ 的 '发动机':“Django的。 db.backends.postgresql_psycopg2' , 'NAME': 'WWW', 'USER': 'amyrlam', '密码': '*', 'HOST': '本地主机', '端口': '5432', }}

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

    进口dj_database_url DATABASES [ '缺省'] = dj_database_url.config()

    SECURE_PROXY_SSL_HEADER =( 'HTTP_X_FORWARDED_PROTO', 'https' 时)

    ALLOWED_HOSTS = [ '*']

    进口OS BASE_DIR = os.path.dirname(os.path.abspath则(文件)) STATIC_ROOT = 'staticfiles' STATIC_URL = '/静态/'

    STATICFILES_DIRS =( os.path中。加入(BASE_DIR, '静态'), )

  • UPDATE:生产设置,试图改变:

进口dj_database_url 个资料库[ '默认'] = dj_database_url.config(默认值= os.environ [ “DATABASE_URL”])

(命名为我的Heroku色网址DATABASE_URL,在Heroku的配置相同的链路)

回答

3

已经设置您的DJANGO_SETTINGS_MODULE环境变量?我相信这是发生了什么:默认情况下,Django使用您的local.py设置,这就是它试图在本地主机上连接的原因。

为了让Django的检测和使用您的production.py设置,需要做到以下几点:

heroku config:set DJANGO_SETTINGS_MODULE=settings.production

这将使Django的加载您的生产。py设置当你在Heroku :)

+0

非常感谢,这对我工作。在wsgi.py和manage.py中,我明确提到了DJANGO_SETTINGS_MODULE作为myprojectname.settings.production。为了在本地运行,我运行'python manage.py runserver --settings = myprojectname.settings.local'。这看起来像一个好的工作流程? –

+0

是的,那很好!这是最好的做法:) – rdegges

+0

谢谢@ rdegges! –

相关问题