9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'app/lib/bridge_cache/plugins/csv_dump.rb', line 9
def self.bulk_import(iterator, model)
ids = []
rows = []
klass = "BridgeCache::#{model.camelcase}".constantize
csv_column_names = klass.csv_mapping.keys
database_column_names = klass.csv_mapping.values
iterator.each_row(model.pluralize) do |row|
row = remove_bad_columns(klass, BridgeCache::Plugins::DataTransform.set_bridge_id(row).to_h)
row = klass.format_import_row(row)
rows << csv_column_names.map { |column| row[column] }
ids << row['bridge_id'] if row['bridge_id'].present?
if rows.length >= BridgeCache.batch_size
perform_bulk_import(klass, database_column_names, rows)
rows = []
end
end
perform_bulk_import(klass, database_column_names, rows)
ids
end
|