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

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

我们正在使用 Rails 应用程序,并且实时表中有大量数据。因此,我们开始将数据归档到不同的数据库中,并在事件表中保留最少的所需数据。但我面临的唯一问题是如何处理架构更改。有没有办法在 rake db:migrate 上的实时数据库和存档数据库上运行迁移?

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

谢谢, GG

最佳答案

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

关于mysql - 在 rake db :migrate 上的多个数据库上运行相同的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19425718/

相关文章:

MySQL Docker 容器未将数据保存到新镜像

php - Laravel 查询生成器 : error in mysql where clause

java - 执行包含 in 子句的 sqlQuery 时出错

ruby-on-rails - 使用嵌套的case语句返回值

database - 由于缺乏 ENUM 支持,CakePHP 的数据库表过多

mysql - 如何提高MySQL子查询性能

mysql - 选择分组的行,即使它们不在另一个表中

ruby-on-rails - 友好 ID 随机 URL

mysql - Ruby, Rails : mysql2 gem, 有人使用这个 gem 吗?稳定吗?

mysql - 如何只更新 DB2 中的一条记录?