如何在heroku上重新启动rails应用程序

Posted

技术标签:

【中文标题】如何在heroku上重新启动rails应用程序【英文标题】:how to relaunch rails app on heroku 【发布时间】:2014-04-05 05:51:48 【问题描述】:

我的应用程序在本地运行正常,但在 Heroku 上运行时出现崩溃。在我运行 new_post_path 调用之前,该应用程序运行良好。我尝试了 git push 来查看是否对 new.html.erb 文件或 _form.html.erb 文件进行了更改 - 但我认为在最后一次推送到 heroku 期间 - 我的数据库可能受到了打击。当时我正在添加一个 t.text 字段(longtext),这似乎是问题所在。

所以我想在 heroku 上回滚或完全重新开始。但我还没有找到这样做。因为这还没有接近生产。无论如何要在heroku创建一个新实例并推动它?

再次,本地版本运行完美。提前感谢您的任何想法。

【问题讨论】:

【参考方案1】:

重新启动可能是您遇到的最少的问题,所以我建议以下几点:

    查看此Heroku article 发布版本,包括 Heroku 回滚功能。

    将PG Backups 插件添加到您的应用中。

    我还建议将 exception_notification gem 与 SendGrid 插件结合使用,这样您也可以收到包含错误详细信息的电子邮件。

【讨论】:

【参考方案2】:

我想说有几种方法可以处理这个问题

重启heroku

在 rails 目录中运行 $ heroku restart。有时我相信魔法。

调试

使用$ heroku log 调试导致错误的原因。

迁移数据库

也许您在本地 rails 中更改了数据库,而 heroku rails 没有。

运行heroku run rake db:migrate

删除数据库并重新迁移数据库

见this thread。有时旧迁移可能与当前迁移发生冲突。如果数据库中的数据不重要,请执行干净迁移。

重新创建 heroku 实例

运行 $ heroku apps:destroy –app appname 并将 appname 替换为您的应用名称。然后从 git 中删除当前的heroku 远程存储库位置。 git remote rm heroku。然后重新创建heroku。运行$ heroku create。像往常一样完成推送代码和迁移数据库。

【讨论】:

以上是关于如何在heroku上重新启动rails应用程序的主要内容,如果未能解决你的问题,请参考以下文章

完美的工作Heroku应用程序崩溃,无法重新启动

如何在不杀死未完成的芹菜任务的情况下重新启动heroku应用程序

Rails 3 和 Heroku:推送时自动“rake db:migrate”?

在nodejs中重新启动heroku dyno

如果应用程序崩溃,heroku 是不是会重新启动 NodeJS 服务器

如何将Rails Server命令作为守护程序启动,以便在重新引导或挤压后重新启动?