2013-02-10 49 views
2

我試圖與Heroku的,Django的配置本地開發環境和virtualenv中。一切似乎都在被推到Heroku的主機可以工作,但在本地,我似乎無法連接到的Heroku提供的開發Postgre DB。如何配置Django的使用Heroku的開發Postgre而地方?

根據指示,我增加了以下內容settings.py:

import dj_database_url 
DATABASES['default'] = dj_database_url.config() 

但是,這似乎並沒有被調用,而本地運行。獲得以下例外:

django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details. 

是否有可能從Django的本地實例連接到Heroku託管開發Postgre?如果是這樣,我錯過了什麼?

謝謝!

回答

2

事實證明,這是相對比較簡單......

dj_database_url.cofig()需要一個參數的默認值。在Heroku上的數據庫信息可以在這裏找到: https://postgres.heroku.com/databases/

如果你的數據庫信息和憑據如下: 主機somehost.amazonaws.com 數據庫somedb 用戶foo 端口5432 密碼欄

然後settings.py條目應如下所示:

import dj_database_url 
DATABASES['default'] = dj_database_url.config(default='postgres://foo:[email protected]:5432/somedb') 

如果您還使用本地Postgre設置,則相同的步驟也可以工作。

+5

代替硬編碼的網址,你爲什麼不使用[配置瓦爾(https://devcenter.heroku.com/articles/config-vars)。這是有效的,當你在Heroku上運行發生了什麼 - 一個DATABASE_URL變量可用,指向數據庫。您應該簡單地在本地執行相同的操作 - 將您的DATABASE_URL設置爲適當的值。那麼你的代碼不會改變 - 這是*更好*。如果您使用Heroku Toolbelt的Foreman,這一切將變得更加簡單。只需在本地運行時使用本地配置變量創建本地.env文件。 – 2013-02-10 10:56:14

+1

真棒,你介意張貼本(+如何做到這一點的說明)作爲一個答案,我會接受它。謝謝! – Sologoub 2013-02-10 17:47:07

相關問題