class MysqlInterface

Attributes

config[RW]
options[RW]

Public Class Methods

new(config) click to toggle source
# File lib/db_helper/mysql_interface.rb, line 7
def initialize(config)
  @config = config.symbolize_keys
  @config[:username] ||= 'root'
  @options = "--user=#{@config[:username]}"
  [:password,:host,:port,:socket].each do |opt|
    @options += " --#{opt}=#{@config[opt]}" unless @config[opt].blank?
  end
end

Public Instance Methods

admin() click to toggle source
# File lib/db_helper/mysql_interface.rb, line 46
def admin
end
csv_import(csv_file_full_path, columns, csv_options = {}) click to toggle source
# File lib/db_helper/mysql_interface.rb, line 34
def csv_import(csv_file_full_path, columns, csv_options = {})
  csv_options['fields-terminated-by'] ||= "','"
  csv_options['fields-enclosed-by'] ||= "'\"'"
  csv_options['lines-terminated-by'] ||= "'\n'"
  csv_options['ignore-lines'] = '1' # Ignore first line so it can be used to show columns
  `mysqlimport #{@options} #{database} \
    #{csv_options.map{|k,v| "--#{k}=#{v}"}.join(' ')} \
   --columns='#{columns.join(',')}' \
   --local \
   #{csv_file_full_path}`
end
database() click to toggle source
# File lib/db_helper/mysql_interface.rb, line 16
def database
  @config[:database]
end
drop_and_create() click to toggle source
# File lib/db_helper/mysql_interface.rb, line 20
def drop_and_create
  puts "0. Dropping and creating database"
  begin
    command "mysqladmin #{@options} drop --force #{database}"
  rescue
    puts "database doesn't exist. Skipping drop"
  end
  command "mysqladmin #{@options} create #{database}"
end
import(file) click to toggle source
# File lib/db_helper/mysql_interface.rb, line 30
def import(file)
  command "mysql #{@options} #{database} < #{file.gsub('.gz', '')}"
end