Module: S3Backup

Defined in:
lib/s3_backup/version.rb,
lib/s3_backup.rb,
lib/s3_backup/config.rb,
lib/s3_backup/railtie.rb,
lib/s3_backup/pg/backup.rb,
lib/s3_backup/pg/import.rb,
lib/s3_backup/storage/s3.rb,
lib/s3_backup/pg/obfuscate.rb,
lib/s3_backup/redis/backup.rb,
lib/s3_backup/redis/import.rb

Overview

:nodoc:

Defined Under Namespace

Modules: Pg, Redis, Storage Classes: Config, Railtie

Constant Summary collapse

VERSION =
'0.0.7'.freeze

Class Method Summary collapse

Class Method Details

.pg_backup!(database_name) ⇒ Object



16
17
18
19
20
21
22
# 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) ⇒ Object



34
35
36
37
38
39
40
41
42
# 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) ⇒ Object



24
25
26
27
28
29
30
31
32
# 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!Object



44
45
46
47
48
49
50
# 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) ⇒ Object



52
53
54
55
56
57
58
59
60
# 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