activerecord-import
参考:
ドキュメント
参考:
Documentation for activerecord-import | RubyDoc.info
Class: ActiveRecord::Base — Documentation for activerecord-import | RubyDoc.info
zdennis/activerecord-import Wiki – GitHub
使い方
参考:
activerecord-import でバルクインサート / バルクアップデートする | コード日進月歩
ActiveRecord で複数レコード、BULK INSERT する方法とパフォーマンスについて – Qiita
activerecord-import の使い方 – Qiita
activerecord-import の import を速くする | 日々雑記
Rails で BULK INSERT する方法 | kurobara のブログ
activerecord-import を使って複数レコードを一括登録する (BULK INSERT) | Madogiwa Blog
バルク生成/更新
参考:
Updating / Creating Multiple records at the same time | SHIVA BHUSAL
on_duplicate_key_update
参考:
Rails でバルクインサート・アップデート – Qiita
activerecord-import でバルクインサート / バルクアップデートする | コード日進月歩
BULK INSERT、BULK UPDATE の実装方法 | ALL-IN Tech Blog
大量のデータ挿入・更新にバルクインサート・バックアップデートを利用する | 49hack
Duplicate Key Update – zdennis/activerecord-import – GitHub
num_inserts / ids
戻り値の num_inserts
及び ids
は PostgreSQL でのみ利用することができる。
参考:
activerecord-import-0.15 系で気をつけること – Qiita
BULK INSERT の戻り値に PRIMARY KEY は返らない (activerecord-import) – Qiita
Return Info – zdennis/activerecord-import – GitHub
inserted id · Issue #94 · zdennis/activerecord-import – GitHub
How do I retrieve a list of created IDs for bulk insert in Active Record? – Stack Overflow
関連モデルを同時に保存する
参考:
activerecord-import を使用したバルクインサートで親子モデルの同時保存 – teratail
関連モデルのバルク更新
参考:
How to do bulk update in rails on habtm association – Stack Overflow
import / import!
参考:
Method: ActiveRecord::Base.bulk_import — Documentation for activerecord-import | RubyDoc.info
bulk_import – activerecord-import/import.rb at v1.0.2 · zdennis/activerecord-import – GitHub
bulk_import! – activerecord-import/import.rb at v1.0.2 · zdennis/activerecord-import – GitHub
imsert_many
参考:
insert_many – activerecord-import/mysql_adapter.rb at v1.0.2 · zdennis/activerecord-import – GitHub
ON CONFLICT 句でエラー
on_duplicate_key_update
を使って UPSERT
を行う際にエラーが発生する。
ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint
原因:
conflict_target
に指定したカラムがプライマリキーもしくは UNIQUE
制約のあるカラムではない。
対処法:
conflict_target
にプライマリキーもしくは UNIQUE
制約のあるカラムを指定する。
参考:
ON CONFLICT clause | SQLite Query Language [Official]
Insert or update entry but fail on unique constraint violation – Stack Overflow
insert_all / upsert_all
Ruby on Rails が標準で対応したバルクインサート/アップサート。Rails 6.0 以降で使用可能。
参考:
insert_all – ActiveRecord::Persistence::ClassMethods | Ruby on Rails API (Edge) [Official]
upsert_all – ActiveRecord::Persistence::ClassMethods | Ruby on Rails API (Edge) [Official]
insert_all – rails/persistence.rb at v6.0.0.rc1 · rails/rails – GitHub
upsert_all – rails/persistence.rb at v6.0.0.rc1 · rails/rails – GitHub
rails/insert_all.rb at v6.0.0.rc1 · rails/rails – GitHub
Add insert_many to ActiveRecord models by boblail · Pull Request #35077 · rails/rails – GitHub