Я пытаюсь добавить таблицы во вторичное табличное пространство в существующем проекте и не могу понять, почему 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
? Есть предложения?