class S3Backup::Redis::Import

Constants

START_REDIS_COMMAND
STOP_REDIS_COMMAND

Attributes

redis_dump_file_path[R]
redis_evironement[R]
redis_s3_file_name[R]

Public Class Methods

new(redis_evironement) click to toggle source
# File lib/s3_backup/redis/import.rb, line 11
def initialize(redis_evironement)
  @redis_evironement    = redis_evironement
  @redis_s3_file_name   = "redis-#{redis_evironement}"
  @redis_dump_file_path = '/usr/local/var/db/redis/dump.rdb'
end

Public Instance Methods

now!() click to toggle source
# File lib/s3_backup/redis/import.rb, line 17
def now!
  puts 'Stop redis database ...'
  stop_redis_database
  puts 'Downloading redis database ...'
  S3Backup::Storage::S3.new.download!(redis_s3_file_name, Config.s3_redis_path, redis_dump_s3_file.path)
  umcompress_file
  copy_file
  puts 'Start redis database ...'
  start_redis_database
  clean_env
  puts '🍺  Done!'
end

Private Instance Methods

clean_env() click to toggle source
# File lib/s3_backup/redis/import.rb, line 65
def clean_env
  redis_dump_file.unlink
  redis_dump_s3_file.unlink
end
copy_file() click to toggle source
# File lib/s3_backup/redis/import.rb, line 49
def copy_file
  `mv #{redis_dump_file.path} #{redis_dump_file_path}`
end
redis_dump_file() click to toggle source
# File lib/s3_backup/redis/import.rb, line 36
def redis_dump_file
  @redis_dump_file ||= Tempfile.new(redis_s3_file_name)
end
redis_dump_s3_file() click to toggle source
# File lib/s3_backup/redis/import.rb, line 32
def redis_dump_s3_file
  @redis_dump_s3_file ||= Tempfile.new("#{redis_s3_file_name}_compressed")
end
start_redis_database() click to toggle source
# File lib/s3_backup/redis/import.rb, line 59
def start_redis_database
  Bundler.with_clean_env do
    `#{START_REDIS_COMMAND} 2> /dev/null`
  end
end
stop_redis_database() click to toggle source
# File lib/s3_backup/redis/import.rb, line 53
def stop_redis_database
  Bundler.with_clean_env do
    `#{STOP_REDIS_COMMAND} 2> /dev/null`
  end
end
umcompress_file() click to toggle source
# File lib/s3_backup/redis/import.rb, line 40
def umcompress_file
  file = File.open(redis_dump_file.path, 'w')

  Zlib::GzipReader.open(redis_dump_s3_file.path) do |gz|
    file.write gz.read
  end
  file.close
end