2012-07-23 55 views
2

我是Heroku和Django/Python的新手。我希望爲我遇到的問題找到答案。我一直在關注Heroku開發中心的入門教程:https://devcenter.heroku.com/articles/django在本地運行「python manage.py syncdb」時出錯,但在通過Heroku運行同一命令時沒有錯誤

運行命令並將應用程序代碼推送到Heroku時,一切正常。例如,當我運行CLI命令「heroku run python manage.py syncdb」時,按預期方式運行,沒有錯誤。然而,當我嘗試在本地運行相同的命令,「蟒蛇manage.py執行syncdb」,我得到下面的輸出和錯誤:

Scotts-MacBook-Pro:bonavina scottklieberman$ python manage.py syncdb 
    Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    ... 
    File "/Library/Python/2.7/site- packages/django/db/backends/postgresql_psycopg2/base.py", line 162, in _cursor 
    raise ImproperlyConfigured("You need to specify NAME in your Django settings file.") 
    django.core.exceptions.ImproperlyConfigured: You need to specify NAME in your Django settings file. 

然後我回去,並檢查了我的settings.py文件。根據Heroku教程,我沒有在設置文件中指定NAME,因爲我使用的是dj_database_url。我很好奇爲什麼這是本地故障(爲什麼它需要NAME),而它正在Heroku上成功編譯。任何幫助將不勝感激。讓我知道是否有任何其他信息需要診斷問題。

最佳, 斯科特

回答

0

dj_database_url使用環境變量DATABASE_URL,這是設置在Heroku,但可能不會在本地環境設置(除非你自己設置)的值。

+0

要在您的本地環境中設置它,請在您的項目主目錄中創建一個名爲.env的文件,並添加DATABASE_URL = postgres:/// dbname,其中dbname是您的數據庫的名稱。然後通過「foreman run python manage.py syncdb」運行syncdb,以便加載環境變量。 – sean 2014-09-02 08:23:41

相關問題