2014-09-22 68 views
1

我有一個應用程序,在本地工作,但不能在heroku上正常工作。加載根頁面,但是當我嘗試提交鏈接時,Heroku給了我「我們很抱歉,但出錯了。」 如果您是應用程序所有者,請查看日誌以獲取更多信息。Rails應用程序Heroku故障

看着日誌,它看起來像是一個資產問題,並且運行「RAILS_ENV =生產捆綁包exec rake資產:預編譯」,但我仍然得到這些日誌錯誤。

2014-09-22T01:09:39.694028+00:00 app[web.1]: [2014-09-22 01:09:39] INFO WEBrick 1.3.1 
2014-09-22T01:09:39.694047+00:00 app[web.1]: [2014-09-22 01:09:39] INFO ruby 2.0.0 (2014-  09-19) [x86_64-linux] 
2014-09-22T01:09:39.694487+00:00 app[web.1]: [2014-09-22 01:09:39] INFO  WEBrick::HTTPServer#start: pid=2 port=24344 
2014-09-22T01:09:39.797519+00:00 heroku[web.1]: State changed from starting to up 
2014-09-22T01:09:40.724903+00:00 heroku[router]: at=info method=GET path="/" host=findmegnar.herokuapp.com request_id=502f7e98-22da-4825-ad85-77606ab64cca fwd="54.162.73.140" dyno=web.1 connect=2ms service=130ms status=200 bytes=1907 
2014-09-22T01:09:44.875965+00:00 heroku[router]: at=info method=GET path="/" host=findmegnar.herokuapp.com request_id=900ca4d9-db6c-4c53-aeb4-f6e50c0a7e4f fwd="74.95.112.118" dyno=web.1 connect=0ms service=16ms status=304 bytes=733 
2014-09-22T01:09:44.978618+00:00 heroku[router]: at=info method=GET path="/assets/application-cb25950d0e442f07f1fa7be553c321c3.css" host=findmegnar.herokuapp.com request_id=13b510e0-f3c8-4f1a-8a29-9d99a30fb794 fwd="74.95.112.118" dyno=web.1 connect=1ms service=9ms status=404 bytes=1829 
2014-09-22T01:09:44.987883+00:00 heroku[router]: at=info method=GET path="/assets/application-433aac58cfba85b04e81533418015cc6.js" host=findmegnar.herokuapp.com request_id=2cbaa67e-646e-4faf-adee-c9c4606fe662 fwd="74.95.112.118" dyno=web.1 connect=0ms service=6ms status=404 bytes=1829 
2014-09-22T01:09:47.967521+00:00 heroku[router]: at=info method=POST path="/searches" host=findmegnar.herokuapp.com request_id=2948d744-102f-420b-a856-63a55ab3e0c5 fwd="74.95.112.118" dyno=web.1 connect=1ms service=16ms status=500 bytes=1754 

編輯:進一步的工作發現,這個錯誤是由缺乏數據庫引起的。運行 heroku運行rake db:reset 修復了這個問題。然而,運行 heroku運行rake import:度假村

做了一個rake導入我想添加到數據的數據,但實際上並沒有將數據添加到db。

有沒有人知道是否有一種特殊的方式來做herku的rake任務?

+0

我似乎記得在推送到產品之前,必須運行「rake assets:clean」,然後執行「rake assets:precompile RAILS_ENV = development」問題。 – user1854802 2014-09-22 01:29:20

+0

道歉 - 上面的介紹beENV =生產 – user1854802 2014-09-22 02:01:37

+2

通過開發環境登錄到Herokuvia。例如, 「heroku運行rake資源:預編譯」 – user1854802 2014-09-22 04:28:24

回答

0

Heroku的

如果你在Heroku重新載入數據庫,你可能會使用rake db:schema:load任務是最好的 - 這從建立你的schema的數據庫,而不是你的遷移。

#db/schema.rb 
# If you need to create the application database on another 
# system, you should be using db:schema:load, not running all the migrations 
# from scratch 

要開發的命令行訪問Heroku的功能,你會是最好利用的Heroku Toolbelt -

$ heroku run rake db:schema:load 
$ heroku run ... 

這使您能夠執行從開發Heroku的操作(本地)機。它傳遞您的請求通過 Heroku的API,允許您根據需要


錯誤

如果您遇到在Heroku上的錯誤,正如一些信息進行對Heroku的命令行的請求,你最好看看他們是如何工作的,並瞭解如何解決這些問題。

有兩種類型的錯誤與Heroku的:

Heroku的

enter image description here

這些都是由您的應用程序不在這裏在Heroku自身

打開的問題引起的是,Heroku的將有一定的「依賴性」,這是運行你的應用程序所必需的。這些依賴關係的形式是像你的數據庫,文件,附件,ENV變量等。

如果你沒有任何這些可用於你的應用程序,不管什麼原因,你會結束收到上面提到的「平臺」錯誤。造成這種情況的解決方法是純粹與Heroku的 - 你需要確保你的文件,設置&讓您的應用所需的附加組件正常工作

-

Rails的

enter image description here

Rails錯誤是特定於您的應用程序的,可能是應用程序中語法錯誤的結果。這裏的區別在於platform錯誤將由Heroku引起,而Rails錯誤將由引起,您的應用

如果你看到上面的錯誤,最簡單的方法來解決它是找到以下文件&改變它暫時

#config/environments/production.rb 
config.consider_all_requests_local = true # false 

再次按下這Heroku上,你會能夠通過標準的Rails錯誤處理界面看到你的應用程序出現的錯誤

+0

謝謝,這是肯定的問題和解決它的最佳方法。我結束了由heroku運行rake db的方式:reset重寫rake任務以匹配heroku的調度程序插件,然後heroku運行rake TASK_NAME來填充數據庫。特別感謝錯誤處理信息,它會派上用場! – 2014-09-22 15:54:27