class S3Backup::Pg::Backup
Attributes
db_name[R]
Public Class Methods
new(db_name)
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 6 def initialize(db_name) @db_name = db_name end
Public Instance Methods
now!()
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 10 def now! puts 'Setup environement' set_pg_password_env puts 'Starting downloading dump ...' dump_database puts 'Dump downloaded.' puts 'Starting obfuscation ...' Obfuscate.new(pg_dump_file.path, obfuscated_file.path).obfuscate_dump! puts 'Obfuscation done.' puts 'Upload to S3 ...' S3Backup::Storage::S3.new.upload!(obfucated_file_name, Config.s3_pg_path, obfuscated_file.path) puts 'Uploaded.' puts 'Clean environement.' clean_env S3Backup::Storage::S3.new.clean!(db_name, Config.s3_pg_path) end
Private Instance Methods
clean_env()
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 51 def clean_env pg_dump_file.unlink obfuscated_file.unlink ENV['PGPASSWORD'] = '' end
dump_database()
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 33 def dump_database `pg_dump -h #{Config.pg_host} -U #{Config.pg_user} -d #{db_name} > #{pg_dump_file.path}` abort "Failed to complete pg_dump. Return code #{$CHILD_STATUS}" unless $CHILD_STATUS == 0 end
obfucated_file_name()
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 43 def obfucated_file_name @obfucated_file_name ||= "#{db_name}-#{Time.now.to_i}.gz" end
obfuscated_file()
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 47 def obfuscated_file @obfuscated_file ||= Tempfile.new(obfucated_file_name) end
pg_dump_file()
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 39 def pg_dump_file @pg_dump_file ||= Tempfile.new(db_name) end
set_pg_password_env()
click to toggle source
# File lib/s3_backup/pg/backup.rb, line 29 def set_pg_password_env ENV['PGPASSWORD'] = Config.pg_password end