Rubyには、Postgres(実際にはGreenplum)データベースのサブクラスであり、サブクラスをActiveSupport::TestCase
介してテーブルにアクセスするテストがあります。ActiveRecord
特定のテストでは、100万行のオーダーでテーブルにデータを入力する必要がありますが、そこに何が含まれているかはあまり気にしません。私は次のようなことをすることができます
for i in 1...1000000 do
MyTable.create(:column1 => 'value', :column2 => 'value')
end
しかし、これは実行に長い時間がかかります。create
毎回新しいものを作成しないようにトランザクションでラップすることで少し速くすることができますが、それはそれほど多くの時間を節約するだけです。
テーブルに偽の値を大量に挿入する必要がないように、これを行うための良い方法はありますか?
(注:後で実際の行を操作する必要があるため、テーブルに100万個のレコードが含まれているように見せかけるためにスタブを作成しても機能しません。この特定のテストでは、それらが何であるかは気にしません)