class Crashbreak::PredefinedSettings

Public Class Methods

dump_file_location() click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 4
def dump_file_location
  "#{Crashbreak.project_root}/tmp/:error_id:/db.dump"
end
dump_folder_location() click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 8
def dump_folder_location
  "#{Crashbreak.project_root}/tmp/:error_id:/db_dump"
end
heroku_postgresql(db_name, app_name) click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 21
def heroku_postgresql(db_name, app_name)
  setup_restorer_for_postgresql

  config.dumper_options.reverse_merge!(
      dump_location: dump_file_location,
      dump_command: "/app/vendor/heroku-toolbelt/bin/heroku pg:backups capture #{db_name} -a #{app_name} &&" +
          "curl -o #{dump_file_location} `/app/vendor/heroku-toolbelt/bin/heroku pg:backups public-url --app #{app_name}`"
  )
end
mongodb(db_name) click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 31
def mongodb(db_name)
  setup_restorer_for_mongo(db_name)

  config.dumper_options.reverse_merge!(
      dump_location: dump_file_location,
      dump_command: "mongodump --db #{db_name} --out #{dump_folder_location} &&
                     tar -cvf #{dump_file_location} -C #{dump_folder_location} . &&
                     rm -rf #{dump_folder_location}"
  )
end
postgresql(db_name) click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 12
def postgresql(db_name)
  setup_restorer_for_postgresql

  config.dumper_options.reverse_merge!(
      dump_location: dump_file_location,
      dump_command: "pg_dump -Fc #{db_name} > #{dump_file_location}"
  )
end

Private Class Methods

config() click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 64
def config
  Crashbreak.configurator
end
setup_restorer_for_mongo(db_name) click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 53
def setup_restorer_for_mongo(db_name)
  config.restorer_options.reverse_merge!(
      drop_test_database_command: 'mongo crashbreak-test --eval "db.dropDatabase()"',
      create_test_database_command: '',
      restore_command: "mkdir -p #{dump_folder_location} &&
                        tar -xf #{dump_file_location} -C #{dump_folder_location} &&
                        mongorestore --db crashbreak-test #{dump_folder_location}/#{db_name}",
      setup_database_connection: -> { Mongoid.load!("#{Crashbreak.project_root}/config/mongoid.yml", :crashbreak_test) }
  )
end
setup_restorer_for_postgresql() click to toggle source
# File lib/crashbreak/predefined_settings.rb, line 44
def setup_restorer_for_postgresql
  config.restorer_options.reverse_merge!(
      drop_test_database_command: 'dropdb crashbreak-test',
      create_test_database_command: 'createdb -T template0 crashbreak-test',
      restore_command: "pg_restore -O #{dump_file_location} -d crashbreak-test",
      setup_database_connection: -> { ActiveRecord::Base.establish_connection(YAML.load(File.read("#{Crashbreak.project_root}/config/database.yml"))['crashbreak_test']) }
  )
end