diff options
author | Kir Shatrov <shatrov@me.com> | 2017-06-18 11:14:52 -0400 |
---|---|---|
committer | Kir Shatrov <shatrov@me.com> | 2017-06-20 13:18:53 -0400 |
commit | 4ee42379cc30a07a7d47b7be8c710dba0efa407a (patch) | |
tree | 19f5e734b0751771edcb80050524760353928031 /activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb | |
parent | 09cb26bc1e653999827cf3eb955d42a2c932b3f5 (diff) | |
download | rails-4ee42379cc30a07a7d47b7be8c710dba0efa407a.tar.gz rails-4ee42379cc30a07a7d47b7be8c710dba0efa407a.tar.bz2 rails-4ee42379cc30a07a7d47b7be8c710dba0efa407a.zip |
Use bulk INSERT to insert fixtures
Improves the performance from O(n) to O(1).
Previously it would require 50 queries to
insert 50 fixtures. Now it takes only one query.
Disabled on sqlite which doesn't support multiple inserts.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb index 7233325d5a..ee2faf43b5 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb @@ -349,6 +349,12 @@ module ActiveRecord end end + def insert_fixtures(rows, table_name) + rows.each do |row| + insert_fixture(row, table_name) + end + end + private def table_structure(table_name) |