Sha256: 529b420ad3a40cc8c6df56eb04dfa2db14ef1b60c51b7368c994863f2e6cc69a
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 KB
Contents
module EY module Backup class Postgresql < Engine register 'postgresql' def dump(database_name, basename) file = basename + '.dump' command = "PGPASSWORD='#{password}' pg_dump -h #{host} --format=c --no-owner --no-privileges -Upostgres #{database_name}" if gpg? command << " | " << GPGEncryptor.command_for(key_id) file << GPGEncryptor.extension end command << " > #{file}" run(command) file end def load(database_name, file) if database_exists?(database_name) cycle_database(database_name) else create_database(database_name) end command = "cat #{file}" if gpg? raise "Cannot load a GPG backup" end command << " | PGPASSWORD='#{password}' pg_restore -h #{host} --format=c --ignore-version -Upostgres -d #{database_name}" run(command) end def database_exists?(database_name) runs?("PGPASSWORD='#{password}' psql -l -h #{host} | grep '#{database_name}'") end def drop_database(database_name) spawn("PGPASSWORD='#{password}' dropdb -h #{host} -U#{username} #{database_name}") end def create_database(database_name) spawn("PGPASSWORD='#{password}' createdb -U#{username} -h #{host} #{database_name}") end def cycle_database(database_name) drop_database(database_name) create_database(database_name) end def suffix /\.(dump|gpz)$/ end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ey_cloud_server-1.4.28 | lib/ey_backup/engines/postgresql_engine.rb |
ey_cloud_server-1.4.28.pre | lib/ey_backup/engines/postgresql_engine.rb |