在 Ruby 中,我有一个测试,它是 Postgres(实际上是 Greenplum)数据库中ActiveSupport::TestCase
的子类并通过子类访问表。ActiveRecord
对于一个特定的测试,我需要用大约一百万行来填充表格,但我并不关心里面有什么。我可以做类似的事情
for i in 1...1000000 do
MyTable.create(:column1 => 'value', :column2 => 'value')
end
但这需要很长时间才能运行。我可以通过将它包装在一个事务中来让它更快一点,这样create
就不会每次都创建一个新的,但这只会节省很多时间。
有没有一些好的方法可以做到这一点,这样我就不必在表中执行大量的虚假值插入?
(注意:试图假装表包含一百万条记录是行不通的,因为我稍后需要与实际行交互;对于这个特定的测试,我只是不在乎它们是什么)