2010-02-15 129 views
1

我正在Heroku上部署應用程序。雖然部署的經驗很好,但我在修理東西時感到很痛苦。在rails應用程序中顯示錯誤。第500頁heroku應用程序

第一件事情是autoincrement ID都是在heroku db和我的db之間搞砸了。所以在部署之前,我必須從我的本地應用程序中刪除所有數據,然後將我的數據庫推送到heroku。如果我不這樣做,然後試圖在heroku應用程序中添加一個記錄,我會得到重複的關鍵錯誤。有沒有一種方法來控制軌道中的自動增量ID?

第二件事,當heroku應用出現錯誤時。我看到了自定義500錯誤頁面。 We're sorry, but something went wrong(500)。有沒有辦法顯示某種錯誤信息呢?或者我必須依賴於heroku日誌?這只是爲了發展,所以如果發生錯誤,我只想在頁面上看到它。它ATLEAST某些部分...

我是新來的Heroku和Rails

回答

1

你可能會檢查Exception Notification插件自定義如何處理異常。

以及關於你的數據庫的問題,你可以push your local database to herokü使用heroku db:push

+0

我真的需要一個插件才能在我的500頁上顯示一些錯誤嗎?看起來像一個過度。加上插件發送電子郵件和東西。我不需要這些功能。我只需要最低限度 – ratan

+0

關於推。我這樣做。但是如果某個表的id爲5,那麼在heroku上,當我再次向該表添加內容時。它給出了重複鍵錯誤,因爲autoincrement id與我的本地db不一樣。我做'heroku db:push'我希望能照顧autincremented id和東西。但顯然不是? – ratan

+0

使用插件可以讓您通過電子郵件獲取錯誤,而不會顯示給世界看(可能暴露您的應用程序的一些內部工作)。這可能是在生產中明智的做法。 –

5

自動增量問題:

也許使用種子數據是一個更好的解決方案,你看到http://railscasts.com/episodes/179-seed-data

錯誤問題:

在config/environments/production.rb中

嘗試更換

config.action_controller.consider_all_requests_local = false 
config.action_controller.perform_caching    = true 
config.action_view.cache_template_loading   = true 

通過

config.action_controller.consider_all_requests_local = true 
config.action_view.debug_rjs       = true 
config.action_controller.perform_caching    = false 

歡呼

+0

是的,這是爲我做的..謝謝它會爲我節省很多時間:) – whizcreed

0

推數據是一回事,但你可能要考慮如何重置序列了。在Heroku上他們使用PGSql,所以你必須查看它的文檔。

0

我有同樣的問題,並編輯config/environments/production.rb沒有幫助。然後,我發現出於某種原因,我的Heroku應用程序正在以分段模式運行。我改變了以下線的config /環境/ staging.rb:

config.action_controller.consider_all_requests_local = false 

到:

config.action_controller.consider_all_requests_local = true 

現在我可以在瀏覽器中看到的異常痕跡!