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