Если ваши базы данных точно такие же (данные не требуют пользовательской обработки) и не слишком много записей, вы можете сделать это (что позволяет использовать внешние ключи):
Непроверенный ... Но вы поняли
#All models and their foreign keys
tales = {Patients => [:doctor_id, :hospital_id],
Doctors => [:hospital_id],
Hospitals}
ActiveRecord::Base.establish_connection :development
max_id = tables.map do |model|
model.maximum(:id)
end.max + 1000
tables.each do |model, fks|
ActiveRecord::Base.establish_connection :development
records = model.find(:all)
ActiveRecord::Base.establish_connection :production
records.each do |record|
#update the foreign keys
fks.each do |attr|
record[attr] += max_id if not record[attr].nil?
end
record.id += max_id
model.create record.attributes
end
end
Если у вас МНОГО записей, вам, возможно, придется как-то разделить это ... сделать это группами по 10 тысяч или что-то в этом роде.