ruby-on-railsrubyruby-on-rails-3ruby-on-rails-2rails-3-upgrade

Downgrading a Rails 3 App to Rails 2


I've run into a problem today. I've spent the past couple of months building a fairly intensive Rails 3 App that uses all the latest versions of every gem I need. I've just been informed that I can't use anything new. I'll be adding my project in with a bunch of others which use older versions of everything. We can't upgrade the existing, we can only downgrade mine.

With that said, I need to downgrade pretty much everything I've done. Here's a list of what I'm using currently (via gem list):

actionmailer (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)
builder (3.0.0)
bundler (1.1.4)
chronic (0.6.7)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.3.3)
erubis (2.7.0)
execjs (1.4.0)
git (1.2.5)
hike (1.2.1)
i18n (0.6.0)
jeweler (1.8.4)
journey (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)
mail (2.4.4)
mime-types (1.19)
multi_json (1.3.6)
nokogiri (1.5.5)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.2.6)
railties (3.2.6)
rake (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)
sprockets (2.1.3)
sqlite3 (1.3.6)
therubyracer (0.10.1)
thor (0.15.4)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.33)
uglifier (1.2.6)
whenever (0.7.3)

Here are the versions I'm allowed to use (for some gems);

activesupport (1.0.7)
activerecord (2.3.2)
actionmailer (2.3.2)
activeresource (2.3.2)
actionpack (2.3.2)
rails (2.3.2)
rake (0.8.4)
sqlite3 (1.2.1)
rubygems (1.3.1)
nokogiri (1.5.0)

So as you can tell, I have some work to do. I'm not even sure I'm using every single gem in the first list; in fact, I'm fairly certain I'm not. So I suppose Step 1 is to remove any and all gems I'm not actually using.

Once I do that, what's the fastest/easiest/best/most efficient way of going about this task?

Thanks!


Solution

  • I would think the easiest thing to do is to create a new Rails 2.3.2 app, and build that up from scratch, but copying over logic and templates and installing the Rails 2 version of gems where needed, and rewrite parts that depend on newer gems or syntax.

    The real question is why can't you deploy your Rails 3 app the way it is? With RVM, Rbenv and Bundler, there should be no reason why you can't deploy different versions of Rails on the same server (If that is even the issue).