45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/e621/csv_importable.rb', line 45
def import_from_csv(csv_path, truncate: false, recreate_indexes: false, chunk_bytes: 1 << 20)
model = T.unsafe(self)
indexes = recreate_indexes ? secondary_index_definitions : {}
model.connection.execute("TRUNCATE #{model.quoted_table_name}") if truncate
indexes.each_key { |name| model.connection.execute("DROP INDEX IF EXISTS #{name}") }
count = copy_csv(csv_path, chunk_bytes: chunk_bytes)
indexes.each_value { |ddl| model.connection.execute(ddl) }
self.row_count = count
count
end
|