class Crashbreak::DatabaseDumper

Public Instance Methods

dump() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 7
def dump
  prepare_aws
  make_directories
  dump_database
  upload_dump
  remove_locally_dump

  { file_name: aws_file_name }
end

Private Instance Methods

aws_file_name() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 35
def aws_file_name
  @aws_file_name ||= "Crashbreak - database dump #{Time.now} (#{Time.now.to_f})"
end
dump_command() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 43
def dump_command
  inject_error_id(Crashbreak.configure.dumper_options[:dump_command])
end
dump_database() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 23
def dump_database
  system(dump_command)
end
dump_location() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 39
def dump_location
  inject_error_id(Crashbreak.configure.dumper_options[:dump_location])
end
error_id() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 51
def error_id
  RequestStore.store[:server_response]['id'].to_s
end
inject_error_id(text) click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 47
def inject_error_id(text)
  text.gsub(':error_id:', error_id)
end
make_directories() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 19
def make_directories
  FileUtils::mkdir_p "#{Crashbreak.project_root}/tmp/#{error_id}/"
end
remove_locally_dump() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 31
def remove_locally_dump
  File.delete(dump_location)
end
upload_dump() click to toggle source
# File lib/crashbreak/dumpers/database_dumper.rb, line 27
def upload_dump
  client.put_object(bucket: bucket_name, key: aws_file_name, body: File.read(dump_location))
end