如何在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应用程序
Rails 3 和 Heroku:推送时自动“rake db:migrate”?