如何调试在Heroku上崩溃并在本地运行良好的Rails应用

时间:2019-06-25 15:11:36

标签: ruby-on-rails heroku

我的Rails应用在本地运行良好。但是,当我将其推送到Heroku时,它突然给了我Status 503,我什至无法进入主页,这是一个静态页面。

奇怪的是,该应用程序已成功在Heroku上构建和部署。但是当我尝试转到我的应用程序时,它显示“应用程序错误”。运行heroku logs -tail的日志只会告诉我这一点:

at=error code=H10 desc="App crashed" method=GET path="/" 
host=flow-portal-rails.herokuapp.com 
request_id=3a4ff52c-9ff2-44b0-a701-038b74319bf9 
fwd="107.143.141.1" dyno= connect= service= status=503 
bytes= protocol=https

我正在使用BUNDLER 2.0.1,我的Gemfile是正确的。我不确定是什么原因导致我的应用突然出现这种情况。

2 个答案:

答案 0 :(得分:1)

您可以尝试的一件事是设置:

config.eager_load = true
在您的config/environments/development.rb

如果您有config.eager_load = false,那么您的应用可能会出现问题,因为您无法访问development,因为元凶代码未被访问(并且,因此已加载)。

相反,在Heroku production中,您的所有代码都已加载,并且可能出现了development中未发现的问题。

在开发中加载整个应用程序时,可能会看到与Heroku相同的问题。

现在,设置config.eager_load = true 可能会导致各种开发速度变慢,因此请记住这一点。我一直在config.eager_load = true中设置development,因为我对您描述的意外崩溃感到厌倦。

或者,这可能根本没有帮助。您必须看看。

答案 1 :(得分:0)

我认为问题出在迁移上,您在服务器上正确运行了所有迁移,但是在Heroku上,所有迁移均未正常运行。

现在您有两个选择:-

  1. 回滚所有迁移,然后每个迁移一个接一个地运行,并将其部署到Heroku。

  2. 只需删除Heroku上的现有应用并创建一个新应用,然后只需从GitHub部署所有代码即可

希望有帮助