Sha256: c9d494f5ddcc0ca91a29f05978d76c349943b04d716d9fa7ec0b221d28669176
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
require 'active_record/connection_adapters/abstract_adapter' module ActiveRecord #:nodoc: module ConnectionAdapters #:nodoc: class MysqlAdapter < AbstractAdapter # Execute a truncate statement on the table. Note that in MySQL a truncate will *NOT* reset # the auto_increment def truncate(table_name) execute("TRUNCATE #{table_name}") end # Bulk load the data in the specified file. This implementation always uses the LOCAL keyword # so the file must be found locally, not on the remote server, to be loaded. # # Options: # * <tt>:ignore</tt> -- Ignore the specified number of lines from the source file # * <tt>:columns</tt> -- Array of column names defining the source file column order # * <tt>:fields</tt> -- Hash of options for fields: # ** <tt>:delimited_by</tt> -- The field delimiter # ** <tt>:enclosed_by</tt> -- The field enclosure def bulk_load(file, table_name, options={}) q = "LOAD DATA LOCAL INFILE '#{file}' INTO TABLE #{table_name}" if options[:fields] q << " FIELDS" q << " TERMINATED BY '#{options[:fields][:delimited_by]}'" if options[:fields][:delimited_by] q << " ENCLOSED BY '#{options[:fields][:enclosed_by]}'" if options[:fields][:enclosed_by] end q << " IGNORE #{options[:ignore]} LINES" if options[:ignore] q << " (#{options[:columns].join(',')})" if options[:columns] execute(q) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems