如何在Heroku上选择Ruby版本?
我在我的Rails 3应用程序中使用了Ruby 1.9.x语法,但在将其推送到Heroku之后,由于旧的Ruby版本(1.8)而崩溃。 我该如何控制它?
Heroku目前的堆栈Cedar默认使用1.9.2。 Cedar还支持在Gemfile中指定Ruby版本 。 目前, 1.9.2和1.9.3是有效选项 。
# Gemfile source "https://rubygems.org" ruby "1.9.3" ...
有关更多详细信息,请参阅Ruby支持文章: https : //devcenter.heroku.com/articles/ruby-support
如果您当前正在使用Aspen或Bamboo,则可以使用stack:migrate
命令切换到1.9.2:
$ heroku stack:migrate bamboo-mri-1.9.2
您目前无法自动迁移到Cedar堆栈,但有一个如何执行此操作的指南: https : //devcenter.heroku.com/articles/cedar-migration
您现在可以在Heroku上显式指定Ruby版本 。
只需设置您的Gemfile
# Gemfile source "https://rubygems.org" ruby "1.9.3" # Gems go here
我想使用我已经在.ruby-version
文件中定义.ruby-version
所以我最终创建了一个buildpack,可以在heroku-buildpack-ruby之前使用,它将.ruby-version中的版本注入到Gemfile
。 它还支持没有补丁或别名的版本。
https://github.com/platanus/heroku-buildpack-ruby-version
这样,您只能在一个地方定义您的版本。
- Hartl的导轨教程在当地完成了作品。 Heroku坚持“我们很抱歉,但出了点问题。”
- 切换到heroku cedar-14会导致内存消耗不断增加
- PostgreSQL字符串(255)限制 – Rails,Ruby和Heroku
- Heroku上传 – 预编译资产失败
- Rails手动从裸域重定向
- Heroku App Crash H10 – bash:bin / rails:没有这样的文件或目录
- 使用Amazon S3配置Carrierwave,在Heroku上托管
- 跟踪heroku上的应用程序内存使用情况
- heroku运行rake db:migrate – / bin / sh:1:rake:not found