我正在使用带有 PostgreSQL 的公寓 gem,我需要使用数据制作现有租户的副本。我能想到的一种方法是从租户那里收集所有数据,然后切换租户并开始创建记录。下面是一个小演示。模型是要复制的模型列表。
Apartment::Tenant.switch!('destination')
models.each do |modal|
eval("@#{modal.downcase} = #{modal}.all.collect{ |p| p.to_dh }")
end
Apartment::Tenant.switch!('target')
models.each do |modal|
eval("@#{modal.downcase}.each{ |p| #{modal}.create(p[:attributes], :without_protection => true) rescue p[:id]}")
end
models.each do |modal|
ActiveRecord::Base.connection.reset_pk_sequence!(eval("#{modal}.table_name"))
end
任何帮助将不胜感激。