Michael, Here's an example that shows how you can use repositories to do what you want. I think in your case, you are looking at having a bunch of different databases that will have the same schema? If that's the case, you should be able to create a new repository for each database, and then just wrap your code in the repository block to switch to which repository it should use.
# http://gist.github.com/458158 require 'rubygems' require 'dm-core' require 'dm-migrations' DataMapper::Logger.new($stdout, :debug) DataMapper.setup(:default, 'sqlite::memory:') class Thing include DataMapper::Resource property :id, Serial property :name, String end DataMapper.setup(:foo, 'sqlite3:///tmp/foo.db') DataMapper.auto_migrate! :foo repository(:foo) do Thing.create :name => "I'm in foo!" end DataMapper.setup(:bar, 'sqlite3:///tmp/bar.db') DataMapper.auto_migrate! :bar repository(:bar) do Thing.create :name => "I'm in bar!" end # Trying to re-create an already existing repo doesn't cause a problem DataMapper.setup(:foo, 'sqlite3:///tmp/foo.db') repository(:foo) do Thing.create :name => "I'm in foo again!" end repository(:foo) do puts "Things in foo: #{Thing.all.map{|t| t.name}.inspect}" end repository(:bar) do puts "Things in bar: #{Thing.all.map{|t| t.name}.inspect}" end On Tue, Jun 29, 2010 at 8:23 PM, Michael Xavier <[email protected]>wrote: > Was hoping someone could save me from having to futz around with > ActiveRecord for a legacy data store. Here's the deal: My application > uses MongoDB/MongoMapper as the primary data store. I need to access a > legacy data store (AR/MySQL database from another rails application). > I got everything mapped up but the problem is, I need to be able to > dynamically change the connection settinngs of a repository to point > at a different db. It's the same host, server, etc, but a different > db. > > For example, I have a repository called :legacy, and by default it > points at the db 'legacy_production', but I need to be able to modify > that connection at will to instead point at 'legacy_whatever' and have > all queries against models using that repository get redirected to > that database. > > Defining all the repositories at start up is out of the question > because new databases might come online in the mean time. Could anyone > offer any hints on how I would accomplish this or *if* I even can > accomplish this with DataMapper? > > -- > You received this message because you are subscribed to the Google Groups > "DataMapper" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<datamapper%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/datamapper?hl=en. > > -- You received this message because you are subscribed to the Google Groups "DataMapper" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/datamapper?hl=en.
