activerecord-import
#RubyGems #ActiveRecord
概要
ActiveRecord を使用してデータをバルクインサートするためのライブラリ
ActiveRecordの標準のinsert_all / update_all を使っても似たようなことができる
#ActiveRecordのinsert_all
#ActiveRecordのupsert_all
code:ruby
10.times do |i|
Book.create! name: "book #{i}"
end
普通のやり方だと10回のSQL呼び出しが起こる
code:ruby
books = []
10.times do |i|
books << Book.new(name: "book #{i}")
end
Book.import books # あるいは import! を使用してください
1回のSQL呼び出しのみ
関連付けも含めてimportする
code:ruby
books = []
10.times do |i|
book = Book.new(name: "book #{i}")
book.reviews.build(title: "Excellent")
books << book
end
Book.import books, recursive: true
ActiveRecordオブジェクト + PostgreSQLじゃないと再帰的importは使えないらしい
参照
zdennis/activerecord-import: A library for bulk insertion of data into your database using ActiveRecord.
gem activerecord-import の README を翻訳しました #Ruby - Qiita