Class: BR::MysqlDatabase
Instance Attribute Summary
#logger
Instance Method Summary
collapse
#dbpass, #dbuser, #initialize, #log, register_as
Instance Method Details
#clone_database(staging_name, io) ⇒ Object
322
323
324
325
326
327
328
329
330
331
332
333
334
335
|
# File 'lib/brbackup.rb', line 322
def clone_database(staging_name, io)
log "dropping #{staging_name} database"
cmd = "mysql -u#{dbuser} #{password_option} -e 'drop database #{staging_name}'"
Open4.popen4 cmd do |pid, stdin, stdout, stderr|
log stdout.read
end
log "creating #{staging_name} database"
Open4.popen4 "mysql -u#{dbuser} #{password_option} -e 'create database #{staging_name}'" do |pid, stdin, stdout, stderr|
log stdout.read
end
log "loading new dump..."
Open4.spawn ["gzip -dc | mysql -u#{dbuser} #{password_option} #{staging_name}"], :stdin => io
log "new dump loaded."
end
|
#db_has_myisam?(name) ⇒ Boolean
312
313
314
315
|
# File 'lib/brbackup.rb', line 312
def db_has_myisam?(name)
query = "SELECT 1 FROM information_schema.tables WHERE table_schema='#{name}' AND engine='MyISAM' LIMIT 1;"
%x{mysql -u #{dbuser} #{password_option} -N -e"#{query}"}.strip == '1'
end
|
#dump_database(name, io) ⇒ Object
307
308
309
310
|
# File 'lib/brbackup.rb', line 307
def dump_database(name, io)
single_transaction = db_has_myisam?(name) ? '' : '--single-transaction'
Open4.spawn ["mysqldump -u#{dbuser} #{password_option} #{single_transaction} #{name} | gzip -c"], :stdout => io
end
|
#password_option ⇒ Object
337
338
339
|
# File 'lib/brbackup.rb', line 337
def password_option
dbpass.nil? || dbpass.empty? ? "" : "-p'#{dbpass}'"
end
|
#restore_database(name, io) ⇒ Object
317
318
319
320
|
# File 'lib/brbackup.rb', line 317
def restore_database(name, io)
log "mock restoring database..."
end
|