我正在使用 rake 任务在架构略有不同的数据库之间移动数据。
当型号名称不同时,这没有问题。例如,将具有“制造商”模型的单独数据库中的信息复制到当前应用程序的“公司”模型中:
task :copy_from_old_to_new => :environment do
require "active_record"
class Manufacturer < ActiveRecord::Base
end
Manufacturer.establish_connection(
:adapter =>"postgresql",
:host => "...",
:username => "...",
:database => "...")
Manufacturer.find_each do |m|
Company.new do |c|
c.name = m.name
c.location = m.geography
c.save
end
end
Manufacturer.connection.close
end
但是,当在具有相同模型名称的两个数据库之间进行复制时,这不起作用,因为为外部数据库定义类会覆盖当前应用程序中的类。有任何想法吗?