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