class PoringBackup::Databases::PostgreSQL
Public Class Methods
new(setting, &block)
click to toggle source
Calls superclass method
PoringBackup::Database::new
# File lib/poring_backup/databases/postgresql.rb, line 5 def initialize setting, &block @db_name = nil @host = 'localhost' @port = nil @username = nil @password = nil instance_eval(&block) if block_given? @file = "#{db_name}.pgsql" super end
Public Instance Methods
backup()
click to toggle source
Calls superclass method
PoringBackup::Database#backup
# File lib/poring_backup/databases/postgresql.rb, line 17 def backup PoringBackup.logger.info "PostgreSQL backup processing" super begin system db_dump PoringBackup.logger.info "#{' '*18}success" rescue => e PoringBackup.logger.warn "#{' '*18}failed!" PoringBackup.logger.debug "#{' '*18}tmp_file: #{tmp_file_path}" PoringBackup.logger.debug "#{' '*18}errors => #{e}" end PoringBackup.logger.info "#{' '*18}finished" end
database(name)
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 37 def database name @db_name = name end
db_dump()
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 57 def db_dump "#{password_option}" + "pg_dump #{connection_options} #{general_options} #{db_name}" end
host(name)
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 41 def host name @host = name end
notify_message()
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 62 def notify_message @notify_message ||= db_name end
password(password=nil)
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 53 def password password=nil @password = password end
port(number)
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 45 def port number @port = number end
restore()
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 31 def restore #psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql} #psql -U <username> -d <dbname> -1 -f <filename>.sql #pg_restore -U <username> -d <dbname> -1 -f <filename>.dump end
username(name)
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 49 def username name @username = name end
Private Instance Methods
connection_options()
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 67 def connection_options options = '' options << "--host=#{@host || 'localhost'}" options << " --port=#{@port}" if @port options << " --username=#{@username}" if @username options end
general_options()
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 79 def general_options options = '' options << "--file=#{tmp_file_path}" options << ' --compress=9' options end
password_option()
click to toggle source
# File lib/poring_backup/databases/postgresql.rb, line 75 def password_option "PGPASSWORD=#{ Shellwords.escape(@password) } " if @password end