一個有意思的rake脚本
程序员文章站
2024-03-12 17:26:02
...
近来由于新项目的需要,把系统的rails版本升级到了2.0.2,可是这个rails版本并不与旧版本兼容,导致使用老版本开发的项目出现诸多问题。
如何解决多项目对应多rails版本的问题呢?
今天发现一个很管用的rake脚本,命令如下(项目目录下执行 )
rake rails:freeze:gems
这个命令是根据你的RAILS_ROOT/config/environment.rb中的RAILE_GEM_VERSION常量设置的值把项目与具体的rails版本绑定,输出如下:
Freezing to the gems for Rails 1.2.2
rm -rf vendor/rails
mkdir -p vendor/rails
cd vendor/rails
Unpacked gem: 'activesupport-1.4.1'
mv activesupport-1.4.1 activesupport
Unpacked gem: 'activerecord-1.15.2'
mv activerecord-1.15.2 activerecord
Unpacked gem: 'actionpack-1.13.2'
mv actionpack-1.13.2 actionpack
Unpacked gem: 'actionmailer-1.3.2'
mv actionmailer-1.3.2 actionmailer
Unpacked gem: 'actionwebservice-1.2.2'
mv actionwebservice-1.2.2 actionwebservice
Unpacked gem: 'rails-1.2.2'
cd -
其实就是把指定版本的rails以及依赖的组件放到项目的vendor目录下,这样项目就不再依赖系统的rails版本,而是每次启动的时候都在verndor目录下去记载rails框架,移植起来也比较方便
输入:
rake --tasks
可查看更多的脚本