`
sunchaohui_koko
  • 浏览: 57133 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

rake rails:freeze

阅读更多

Ruby on Rails允许你”冻结”你的应用使用的Rails版本。当你冻结Rails时,你的应用将会一直使用冻结的版本,并且和Ruby Gems相关联,与当前服务器上跑的Rails版本无关。你可以将应用冻结到你想要的版本。

当你的Rails程序用在商业站点或其它对稳定性要求较高的生产环境时,冻结你的Rails版本是推荐使用的。(如果你不冻结的话,你的Rails应用可能因版本升级后的兼容性问题而停止)。然而你需要注意的是,如果你的应用冻结到当前或是更老的版本后,你将不会获得自动升级后的安全性好处。你需要及时跟踪当前的Rails版本(比如通过订阅Rails的邮件列表),必要的话升级你的应用。

冻结Rails
要冻结你的Rails程序,你需要
1.打开SSH或Telnet终端,登录到服务器上
2.切换到你要冻结的Rails应用目录下。
例如,你创建了一个”test”应用

> rails test
> cd test

3.执行下面的命令,冻结你的Rails程序到当前服务器上的版本

rake rails:freeze:gems

这将拷贝Rails的相关文件到你的程序”vendor/rails”下。当程序运行时,你的应用会首先检查这个目录下存在的文件,如果存在的话,Rails会加载该目录下的Rails组件而不会使用服务器上当前版本的Rails。只要你不删除这些文件,你的应用将会继续被冻结。

解冻Rails
如果你决定切换回当前服务器上的Rails版本,你可以通过下面命令移除冷冻的版本:

rake rails:unfreeze

冻结到不同的版本
上面我们叙述了如何将你的Rails程序冻结到当前服务器上的版本,Rails允许你将程序冻结几乎任何一个版本。
例如,下面的命令可以将你的程序冻结到Rails 1.0.0

rake rails:freeze:edge TAG=rel_1-0-0

冻结到当前开发的版本

rake rails:freeze:edge

当升级的时候,冻结不同的Rails版本是很有用的。假如你创建了一个rails应用并冻结到1.1.5以保证稳定,当你意识到rails需要升级(版本1.1.6可用了),你可以在服务器比较空闲的时候对冻结的版本进行升级:

rake rails:freeze:edge TAG=rel_1-1-6

然后测试你的应用以确保可以工作,如果没有问题,将使用最新的Rails。如果有问题,你可以再恢复之前的版本直到你确定问题所在。

rake rails:freeze:edge TAG=rel_1-1-5

BTW:你可以通过下面命令查看当前rails应用的版本

ruby script/about

分享到:
评论
1 楼 yekki 2010-07-06  
rake rails:freeze:gem与rake rails:freeze:edge是否在效果上一样?

相关推荐

Global site tag (gtag.js) - Google Analytics