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"?
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.