class Bosh::Director::DbBackup::Adapter::Postgres

Public Class Methods

new(db_config) click to toggle source
# File lib/bosh/director/db_backup/adapter/postgres.rb, line 8
def initialize(db_config)
  @db_config = db_config
end

Public Instance Methods

export(path) click to toggle source
# File lib/bosh/director/db_backup/adapter/postgres.rb, line 12
def export(path)
  env = {}
  env['PGPASSWORD'] = @db_config['password'] if @db_config.has_key?('password')

  stdout, stderr, status = Open3.capture3(
    env,
    'pg_dump',
    '--host',     @db_config.fetch('host'),
    '--port',     @db_config.fetch('port').to_s,
    '--username', @db_config.fetch('user'),
    '--file',     path,
    @db_config.fetch('database'),
  )

  unless status.success?
    raise("pg_dump exited #{status.exitstatus}, output: '#{stdout}', error: '#{stderr}'")
  end

  path
end