class Crashbreak::DatabaseRestorer

Public Class Methods

new(dump_data) click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 7
def initialize(dump_data)
  @error_id = dump_data['error_id']
  @file_name = dump_data['file_name']
end

Public Instance Methods

restore() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 12
def restore
  system(drop_test_database_command)
  system(create_test_database_command)
  prepare_aws
  make_directories
  download_dump unless dump_already_downloaded
  restore_database
  setup_connection_to_restored_database
end

Private Instance Methods

create_test_database_command() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 56
def create_test_database_command
  Crashbreak.configure.restorer_options[:create_test_database_command]
end
download_dump() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 32
def download_dump
  File.open(restore_location, 'wb') do |file|
    client.get_object(bucket: bucket_name, key: @file_name) do |data|
      file.write(data)
    end
  end
end
drop_test_database_command() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 52
def drop_test_database_command
  Crashbreak.configure.restorer_options[:drop_test_database_command]
end
dump_already_downloaded() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 40
def dump_already_downloaded
  File.exists?(restore_location)
end
inject_error_id(text) click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 64
def inject_error_id(text)
  text.gsub(':error_id:', @error_id)
end
make_directories() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 24
def make_directories
  FileUtils::mkdir_p "#{Crashbreak.project_root}/tmp/#{@error_id}/"
end
restore_command() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 48
def restore_command
  inject_error_id(Crashbreak.configure.restorer_options[:restore_command])
end
restore_database() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 28
def restore_database
  system(restore_command)
end
restore_location() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 60
def restore_location
  inject_error_id(Crashbreak.configure.dumper_options[:dump_location])
end
setup_connection_to_restored_database() click to toggle source
# File lib/crashbreak/restorers/database_restorer.rb, line 44
def setup_connection_to_restored_database
  Crashbreak.configure.restorer_options[:setup_database_connection].call
end