module S3Backup

Public Class Methods

pg_backup!(database_name) click to toggle source
# File lib/s3_backup.rb, line 16
def pg_backup!(database_name)
  require_s3_params
  Config.requires!(:pg_host, :pg_user, :s3_pg_path, :tables)

  backup = Pg::Backup.new(database_name)
  backup.now!
end
pg_download!(pg_database_name, filename) click to toggle source
# File lib/s3_backup.rb, line 34
def pg_download!(pg_database_name, filename)
  raise 'Need to be run in a rails project' unless defined?(Rails)

  require_s3_params
  Config.requires!(:s3_pg_path)
  file_downloaded = S3Backup::Storage::S3.new.download!(pg_database_name, Config.s3_pg_path, filename)
  abort 'Unable to download file' unless file_downloaded
  filename
end
pg_import!(pg_database_name) click to toggle source
# File lib/s3_backup.rb, line 24
def pg_import!(pg_database_name)
  raise 'Need to be run in a rails project' unless defined?(Rails)

  require_s3_params
  Config.requires!(:s3_pg_path)

  import = Pg::Import.new(pg_database_name)
  import.now!
end
redis_backup!() click to toggle source
# File lib/s3_backup.rb, line 44
def redis_backup!
  require_s3_params
  Config.requires!(:redis_dump_path, :s3_redis_path)

  backup = Redis::Backup.new
  backup.now!
end
redis_import!(redis_evironement) click to toggle source
# File lib/s3_backup.rb, line 52
def redis_import!(redis_evironement)
  raise 'Import only work with redis installed by brew' if Dir['/usr/local/Cellar/redis/*'].blank?

  require_s3_params
  Config.requires!(:s3_redis_path)

  import = Redis::Import.new(redis_evironement)
  import.now!
end

Private Class Methods

require_s3_params() click to toggle source
# File lib/s3_backup.rb, line 64
def require_s3_params
  Config.load!('config/s3_backup_obfuscate.yml')

  Config.requires!(:aws_access_key_id, :aws_secret_access_key, :bucket, :aws_region, :s3_keep)
end