Module: S3BackupManager::PostgresAdapter
- Defined in:
- lib/adapters/postgres_adapter.rb
Instance Method Summary collapse
- #dump_database_to_file(username, database, directory) ⇒ Object
- #restore_database_from_file(username, database, directory) ⇒ Object
Instance Method Details
#dump_database_to_file(username, database, directory) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/adapters/postgres_adapter.rb', line 4 def dump_database_to_file(username, database, directory) directory = "#{directory}/s3postgresbackup/#{database}" FileUtils.mkdir_p(directory) FileUtils.chmod_R 0770, directory FileUtils.chown_R nil, username, directory system "cd #{directory} && sudo -u #{username} vacuumdb -z #{database} >/dev/null 2>&1" exit(1) unless $?.success? dump_file = "#{directory}/#{database}.pgsql" system "cd #{directory} && sudo -u #{username} pg_dump --blobs --format=t #{database} > #{dump_file}" exit(1) unless $?.success? user_file = "#{directory}/globals.pgsql" system "cd #{directory} && sudo -u #{username} pg_dumpall -v -f #{user_file} --globals-only >/dev/null 2>&1" exit(1) unless $?.success? [directory] end |
#restore_database_from_file(username, database, directory) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/adapters/postgres_adapter.rb', line 20 def restore_database_from_file(username, database, directory) directory = "#{directory}/tmp/#{database}/s3postgresbackup/#{database}" user_file = "#{directory}/globals.pgsql" system "cd /tmp && sudo -u #{username} psql -f #{user_file} >/dev/null 2>&1" exit(1) unless $?.success? dump_file = "#{directory}/#{database}.pgsql" recreate_database!(username, database) system "cd /tmp && sudo -u #{username} pg_restore --format=t -d #{database} #{dump_file} >/dev/null 2>&1" exit(1) unless $?.success? end |