Forum: Ruby on Rails migrations via script || migrate multiple DB's

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
10a8337cf8879d37affd54e1cab4d79e?d=identicon&s=25 Andy Koch (Guest)
on 2007-07-17 19:33
(Received via mailing list)

I'm wondering if anyone else has faces the task of migrating multiple
databases?  How can one do this is an automated fashion?

Currently I'm running usual "rake db:migrate" from cmd, where I'll
manually edit the database.yml :database line to indicate the current
DB.  This is done is a sequential fashion.  While this is fine for
working out the migrations, it's going to be real tedious for migrating
the 50+ production databases.

Thus I'd like to come up with a ruby script that will run the migration
for each DB automatically.

Two issues I see...
1. how does one run migrations from ruby?  is it a `/path_to_app/rake
db:migrate`, generally I like to avoid cmd line executions in scripts

2. how does one programmatically reset the migration connection? I know
I can do a "model_obj.establish_connection" for ActiveRecord, but I
don't see anything similar for migration.

Having these resolved, I envision something like...


Thank You,

andy koch
3203ed0e608d3bfae1e31282e629ffa2?d=identicon&s=25 Peter Fitzgibbons (Guest)
on 2007-07-17 21:39
(Received via mailing list)
HI Andy,

I believe you need to be looking at Capistrano.  Depending upon your

And, if I may ask, what kind of app is using 50+ identical databases?

Peter Fitzgibbons
iPhone -- "IT"-ness.
10a8337cf8879d37affd54e1cab4d79e?d=identicon&s=25 Andy Koch (Guest)
on 2007-07-17 23:02
(Received via mailing list)
Peter Fitzgibbons schrieb:
> HI Andy,
> I believe you need to be looking at Capistrano.  Depending upon your
> situation.
> And, if I may ask, what kind of app is using 50+ identical databases?
> --
> Peter Fitzgibbons

ah, I was thinking of Cap, but I'm fairly hackish with it.  I'll see
where that leads me.

what kind of app?  sure you may ask, it's an inherited PHP app that runs
Firebird.  the app manages text strings for desktop apps where each DB
is a different branch

I didn't design it, I inherited it, and now I'm rail-ifying it.

3203ed0e608d3bfae1e31282e629ffa2?d=identicon&s=25 Peter Fitzgibbons (Guest)
on 2007-07-19 17:44
(Received via mailing list)
Without knowing more detail, it sounds like your design could use some
refactoring-love along the way.
Maybe a couple habtm tables with strings/context relationships?

Good luck!

On 7/17/07, Andy Koch <> wrote:
> > --
> /ak
> >

Peter Fitzgibbons
iPhone -- "IT"-ness.
5fc63c359f31ed14cd6e490930df2708?d=identicon&s=25 Tomáš Klapka (klip)
on 2007-11-04 07:20
If you have multiple databases with the same schema, you might use
something like:

   databases.each do |database|
      ActiveRecord::Base.establish_connection :adapter  => "adapter",
                                              :host     => "host",
                                              :username => "username",
                                              :password => "password",
                                              :database => database

I made a db:migrate_all rake task (which I
saved in lib/tasks/migrate_all.rake)

Just need to play with better sql config, probably read from
database.yml, but it works fine for me having one rails app, kind of
CMS, connecting to database dependently on in application
controller, so each site has its own db and data directory.

I had to do this because I have mongrel_cluster with apache
mod_proxy_balancer, and I cannot afford to run cluster for each site, so
I need one rails app with one scalable mongrel_cluster and a lot of
sites sharing it.

Got hint with this from guy with nick pythonic on
This topic is locked and can not be replied to.