我今天遇到了一个问题。我花了几个月的时间构建了一个相当密集的Rails 3应用程序,它使用了我需要的每个gem的所有最新版本。我刚刚被告知我不能使用任何新东西。我将把我的项目添加到其他一些使用旧版本的所有内容中。我们无法升级现有的,我们只能降级我的。
话虽如此,我需要降级几乎所有我做过的事情。这是我目前正在使用的列表(通过gem list
):
动作管理员(3.2.6)
actionpack(3.2.6)
activemodel(3.2.6)
activerecord(3.2.6)
activeresource(3.2.6)
activesupport(3.2.6)
arel(3.0.2)
awesome_print(1.0.2)
建设者(3.0.0)
捆绑(1.1.4)
慢性病(0.6.7)
咖啡轨(3.2.2)
咖啡脚本(2.2.0)
coffee-script-source(1.3.3)
erubis(2.7.0)
execjs(1.4.0)
git(1.2.5)
加息(1.2.1)
i18n(0.6.0)
珠宝商(1.8.4)
旅程(1.0.4)
jquery-rails(2.0.2)
json(1.7.3)
libv8(3.3.10.4 x86_64-linux)
libxml-ruby(2.3.3)
邮件(2.4.4)
哑剧型(1.19)
multi_json(1.3.6)
nokogiri(1.5.5)
多语言(0.3.3)
机架(1.4.1)
rack-cache(1.2)
rack-ssl(1.3.2)
机架测试(0.6.1)
导轨(3.2.6)
铁路(3.2.6)
耙(0.9.2.2)
rdoc(3.12)
roxml(3.3.1)
rubygems-bundler(1.0.3)
rvm(1.11.3.4)
sass(3.1.20,3.1.19)
sass-rails(3.2.5)
链轮(2.1.3)
sqlite3(1.3.6)
therubyracer(0.10.1)
托尔(0.15.4)
倾斜(1.3.3)
树梢(1.4.10)
tzinfo(0.3.33)
uglifier(1.2.6)
每当(0.7.3)
以下是我允许使用的版本(对于某些宝石);
activesupport(1.0.7)
activerecord(2.3.2)
动作邮件(2.3.2)
activeresource(2.3.2)
actionpack(2.3.2)
导轨(2.3.2)
耙(0.8.4)
sqlite3(1.2.1)
rubygems(1.3.1)
nokogiri(1.5.0)
你可以说,我有一些工作要做。我甚至不确定我是否在使用第一个列表中的每个宝石;事实上,我很确定我不是。因此,我认为第1步是删除我实际上并未使用的任何宝石。
一旦我这样做,最快/最简单/最好/最有效的方法是什么?
谢谢!
答案 0 :(得分:2)
我认为最简单的方法是创建一个新的Rails 2.3.2应用程序,并从头开始构建,但复制逻辑和模板并在需要的地方安装Rails 2版本的gem,并重写部分取决于更新的宝石或语法。
真正的问题是为什么你不能按原样部署你的Rails 3应用程序?使用RVM,Rbenv和Bundler,应该没有理由不能在同一台服务器上部署不同版本的Rails(如果这就是问题)。