2012-10-23 50 views
1

對我的django應用程序提交了一個小的代碼更改並部署到了heroku。該應用程序現在會在每次響應中拋出H10(應用程序崩潰)錯誤。當我檢查日誌,我看到..Heroku/app/bin目錄不存在

[web.1]: Traceback (most recent call last): 
[web.1]: File "nightlife2/manage.py", line 2, in <module> 
[web.1]:  from django.core.management import execute_manager 
[web.1]: ImportError: No module named django.core.management 
[web.1]: bash: bin/gunicorn_django: No such file or directory 

..我知道這意味着django不在pythonpath。我查看了說明bin:/usr/local/bin:/usr/bin:/bin的heroku配置的PATH。但在做heroku run bash時,我注意到整個bin目錄已經消失。我部署在heroku上的其他應用程序仍然可以推送到那裏並且仍然有bin目錄(我相信新應用程序不再有bin目錄,現在它已經在.heroku/venv/bin中了。 )

有沒有人遇到過這個?我可以將PATH更改爲.heroku/venv/bin,但後來我得到一個有關sql的錯誤,我不知道這是否離根問題更近或更遠。任何東西將不勝感激,因爲這是生產服務器,目前已被洗淨。

編輯:改變路徑時的錯誤是:django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3 。數據庫是postgress所以我不知道這是從哪裏來

回答

1

我解決了這個問題。這是事物的組合。我會在這裏記錄下來,並希望能夠拯救一個人我剛剛經歷過的頭痛。

我們的數據庫剛剛更新到新的Heroku Postgres開發計劃。 (不確定這是否相關)。這是自數據庫更新以來第一次推出代碼。

一段時間後我記得聽到有關設置注入被棄用。太天真了,我們沒有采取任何措施,也從來沒有看到任何變化,所以從來沒有跟進過。他們決定今天生效,並打破了我們postgres數據庫的鏈接。我仍然不確定爲什麼bin目錄現在不存在,但似乎應用程序現在使用新的.heroku/venv/bin。爲了解決所有這些問題,我必須更改settings.py來爲數據庫使用新的postgres聲明。我在我的OP中正確地指出heroku config中的PATH變量需要更新以指向.heroku/venv/bin目錄。然後我不得不更新Procfile,因爲它抱怨找不到bin/gunicorn_django。一旦一切都被更新,推動代碼解決了問題