2010-02-15 48 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 

现在我可以在浏览器中看到的异常痕迹!

相关问题