require 's3_backup'
namespace :s3_backup do
namespace :pg do desc 'Backup, obfuscate & compress Postgres database to s3' task :backup, [:database] do |_task, args| raise 'You need to specify a database' unless args[:database] S3Backup.pg_backup! args[:database] end desc 'Import Postgres database from s3' task :import, [:pg_database] do |_task, args| raise 'You need to specify a pg database' unless args[:pg_database] S3Backup.pg_import! args[:pg_database] end desc 'Download the most recent backup from S3' task :download, [:pg_database,:filename] do |_task, args| raise 'You need to specify a pg database' unless args[:pg_database] filename = args[:filename] || "/tmp/#{pg_database_name}-#{Time.current.strftime('%Y%m%dT%H%M%S')}.sql.gz" S3Backup.pg_download! args[:pg_database], filename puts "Downloaded backup to #{filename}" end end
end