PostgreSQL でアパートメント gem を使用しており、データを含む既存のテナントのコピーを作成する必要があります。考えられる 1 つの方法は、テナントからすべてのデータを収集してから、テナントを切り替えてレコードの作成を開始することです。以下は小さなデモンストレーションです。モデルは、コピーされるモデルのリストです。
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
どんな助けでも大歓迎です。