我试图将表添加到现有项目的辅助表空间中,但无法弄清Rails为何迁移两个表空间。
正在运行的rake db:migrate_new
会按需迁移到新表空间中。运行'rake db:migrate_old'将存储在db/migrate/new_tablespace_migrations
中的迁移应用于当前/主数据库,因此我最终得到每个表的两个副本,每个表空间一个。
我正在尝试遵循本指南:https://www.thegreatcodeadventure.com/managing-multiple-databases-in-a-single-rails-application/
迁移代码:
task :migrate_new do
NEW_DATABASE = YAML.load_file(File.join(Rails.root, "config", "old_database.yml"))[Rails.env.to_s]
ActiveRecord::Base.establish_connection NEW_DATABASE
ActiveRecord::Migrator.migrate("db/migrate/new_tablespace_migrations/")
end
task :migrate_old do
OLD_DATABASE = YAML.load_file(File.join(Rails.root, "config", "database.yml"))[Rails.env.to_s]
ActiveRecord::Base.establish_connection OLD_DATABASE
ActiveRecord::Migrator.migrate("db/migrate/")
我是否需要找到一种方法从new_tablespace_migrations
中的路径中过滤出migrate_old
文件夹?有什么建议吗?