Class: CsvFastImporter::Database::Mysql

Inherits:
Queryable
  • Object
show all
Defined in:
lib/csv_fast_importer/database/mysql.rb

Instance Method Summary collapse

Methods inherited from Queryable

#connection, #delete_all, #execute, identifier_quote_character, #identify, #initialize, #query, #transaction, #truncate

Constructor Details

This class inherits a constructor from CsvFastImporter::Database::Queryable

Instance Method Details

#bulk_import(file, table, columns, row_index_column: nil, column_separator:, encoding:) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/csv_fast_importer/database/mysql.rb', line 12

def bulk_import(file, table, columns, row_index_column: nil, column_separator:, encoding:)
  columns_list_query = columns.map { |column| identify(column) }.join(',')
  execute <<-SQL
      LOAD DATA LOCAL INFILE '#{File.expand_path(file)}'
      INTO TABLE #{identify(table)}
      CHARACTER SET UTF8
      FIELDS TERMINATED BY '#{column_separator}' OPTIONALLY ENCLOSED BY '"'
      LINES TERMINATED BY '\\n'
      IGNORE 1 LINES
      (#{columns_list_query})
      ;
    SQL
  query('SELECT ROW_COUNT()')
end

#verify_compatibility(configuration) ⇒ Object



8
9
10
# File 'lib/csv_fast_importer/database/mysql.rb', line 8

def verify_compatibility(configuration)
  raise 'Transactional not supported with MySQL database' if configuration.transactional_forced?
end