class CsvFastImporter::Database::Mysql

Public Instance Methods

bulk_import(file, table, columns, row_index_column: nil, column_separator:, encoding:) click to toggle source
# 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) click to toggle source
# 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