namespace :sp do
namespace :duh do namespace :transfer do desc "Backup a sharded company for restoring to a different database" task :backup, [ :company_id, :backup_file ] => :environment do |task, arguments| if arguments[:company_id].nil? raise "Usage: rake sp:duh:transfer:backup[<company_id> [, <backup_file> ]]" end company_id = arguments[:company_id].to_i backer = SP::Duh::Db::Transfer::Backup.new(ActiveRecord::Base.connection.raw_connection) backer.execute(company_id, arguments[:backup_file]) end desc "Restore a sharded company backed up from a different database" task :restore, [ :company_id, :backup_file ] => :environment do |task, arguments| if arguments[:company_id].nil? || arguments[:backup_file].nil? raise "Usage: rake sp:duh:transfer:backup[<company_id>, <backup_file>]" end company_id = arguments[:company_id].to_i backup_file = arguments[:backup_file].to_s restorer = SP::Duh::Db::Transfer::Restore.new(ActiveRecord::Base.connection.raw_connection) restorer.execute(company_id, backup_file) end desc "Validate and get info from a sharded company backup" task :check, [ :company_id, :backup_file ] => :environment do |task, arguments| if arguments[:company_id].nil? || arguments[:backup_file].nil? raise "Usage: rake sp:duh:transfer:check[<company_id>, <backup_file>]" end company_id = arguments[:company_id].to_i backup_file = arguments[:backup_file].to_s restorer = SP::Duh::Db::Transfer::Restore.new(ActiveRecord::Base.connection.raw_connection) restorer.execute(company_id, backup_file, true) end end end
end