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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章