Support multiple databases.

1 view
Skip to first unread message

Diego

unread,
Jan 15, 2007, 7:14:38 PM1/15/07
to Ruby on Rails: Talk
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

Jason Roelofs

unread,
Jan 17, 2007, 3:35:03 PM1/17/07
to rubyonra...@googlegroups.com
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

Diego

unread,
Jan 18, 2007, 12:17:34 AM1/18/07
to Ruby on Rails: Talk
Hi Jason,

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

Cheers,
Diego

Reply all
Reply to author
Forward
0 new messages