将Rails 3应用程序降级为Rails 2

我今天遇到了一个问题。 我花了几个月的时间构建了一个相当密集的Rails 3应用程序,它使用了我需要的每个gem的所有最新版本。 我刚刚被告知我不能使用任何新东西。 我将把一些其他使用旧版本的东西的项目添加到我的项目中。 我们无法升级现有的,我们只能降级雷。

话虽如此,我需要降级几乎所有我做过的事情。 这是我目前正在使用的gem list (通过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)

以下是我允许使用的版本(对于某些gem);

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)

你可以说,我有一些工作要做。 我甚至不确定我是否正在使用第一个列表中的每一个gem; 事实上,我很确定我不是。 因此,我认为第1步是删除我实际上并未使用的任何gem。

一旦我这样做,什么是最快/最简单/最好/最有效的方式来完成这项任务?

谢谢!

我认为最简单的方法是创建一个新的Rails 2.3.2应用程序,并从头开始构建它,但复制逻辑和模板并在需要的地方安装Rails 2版本的gem,并重写依赖于更新的部分gem或语法。

真正的问题是为什么你不能按原样部署你的Rails 3应用程序? 使用RVM,Rbenv和Bundler,应该没有理由不能在同一台服务器上部署不同版本的Rails(如果这就是问题)。