Class: MysqlDumper

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql_dumper.rb,
lib/mysql_dumper/version.rb

Defined Under Namespace

Classes: InitFailedException

Constant Summary collapse

VERSION =
"0.0.4"

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ MysqlDumper

Returns a new instance of MysqlDumper.



5
6
7
8
9
10
11
# File 'lib/mysql_dumper.rb', line 5

def initialize config
  @password = config["password"]
  @username = config["username"]
  @database = config["database"]
  raise InitFailedException, "username is required to init a dumper" unless @username
  raise InitFailedException, "database is required to init a dumper" unless @database
end

Instance Method Details

#dump_schema_to(path, options = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/mysql_dumper.rb', line 13

def dump_schema_to path, options = {}
  preserved_tables = options[:preserve] || []
  table_string = preserved_tables.join(" ")

  system "mysqldump -u #{@username} -p#{@password} -R -d --skip-comments #{@database} | sed 's/ AUTO_INCREMENT=[0-9]*\\b//' > #{path}"
  if ! table_string.strip.empty?
    system "mysqldump -u #{@username} -p#{@password} --skip-comments #{@database} #{table_string} >> #{path}"
  end
end

#dump_to(path) ⇒ Object



23
24
25
# File 'lib/mysql_dumper.rb', line 23

def dump_to path
  system "mysqldump -u #{@username} -p#{@password} -R --skip-comments #{@database} > #{path}"
end

#load_from(path) ⇒ Object



27
28
29
# File 'lib/mysql_dumper.rb', line 27

def load_from path
  system "cat #{path} | mysql -u #{@username} -p#{@password} #{@database}"
end