2014-03-26 52 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! –

相關問題