在rake db:migrate上的多个数据库上运行相同的迁移

时间:2013-10-17 11:39:45

标签: mysql ruby-on-rails database performance database-migration

我们正在使用rails app并在实时表中包含大量数据。因此,我们开始将数据存档到不同的数据库中,并且在实时表中具有最少的所需数据。但我唯一面临的问题是如何处理架构更改。有没有办法在rake db:migrate?

上的live db和archival db上运行迁移

有关如何处理此类情况的任何建议,其中必须保持两个数据库的模式同步。

谢谢, GG

1 个答案:

答案 0 :(得分:2)

desc "Migrate the database through scripts in db/migrate."
namespace :db do
  task :migrate do
    Rake::Task["db:migrate_db1"].invoke
    Rake::Task["db:migrate_db2"].invoke
  end

  task :migrate_db1 do
    ActiveRecord::Base.establish_connection DB1_CONF
    ActiveRecord::Migrator.migrate("db/migrate/db1/")
  end

  task :migrate_db2 do
    ActiveRecord::Base.establish_connection DB2_CONF
    ActiveRecord::Migrator.migrate("db/migrate/db2/")
  end
end