Support multiple databases

I was wondering, how easy is it to develop an application to support
different database back-ends? For example, I am looking to develop an
app to support MySQL and SQLServer. One developer working in OS X
against MySql, the other in Windows against SQLServer. Are there
problems which may be encountered or does Rails handle all and it “just
works”?

Cheers,
Diego

You have to be a little careful with this, for sure, however it is not
difficult as long as you keep in mind which models belong where.

This is a decent article on how to do this:
http://schf.uc.org/articles/2006/12/06/multiple-concurrent-database-connections-with-activerecord

Do note that AR classes which redefine database connections can be
subclassed and keep the super-class’s db connection. Thus:

class MySQLConn < ActiveRecord::Base
establish_connection …
end

class SQLServerConn < ActiveRecord::Base
establish_connection …
end

Then:

class Model1 < MySQLConn
… does stuff to mysql
end

class Model2 < SQLServerConn
… does stuff to sqlserver
end

You’ll have to go searching around and give some thought into dealing
with
test fixtures with this. There are a few articles around though as I
haven’t
done that, I’m not sure the best way.

Jason

Hi Jason,

Thanks for taking the time to reply. I’ll look in thge directions you
point to.

Cheers,
Diego