diff --git a/lib/tasks/whois.rake b/lib/tasks/whois.rake index 88d284b75..fd905e383 100644 --- a/lib/tasks/whois.rake +++ b/lib/tasks/whois.rake @@ -16,15 +16,44 @@ namespace :whois do puts "\n-----> all done in #{(Time.zone.now.to_f - start).round(2)} seconds" end - # desc 'Delete whois database data and import from Registry master database (faster)' - # task export: :environment do - # start = Time.zone.now.to_f - # print "-----> Delete whois database data and import from Registry whois_records table..." - # whois_records = WhoisRecord.pluck(:name, :body, :json) - # Whois::Record.delete_all - # Whois::Record.import([:name, :body, :json], whois_records) - # puts "\n-----> all done in #{(Time.zone.now.to_f - start).round(2)} seconds" - # end + desc 'Create whois database' + task create: [:environment] do + whois_db = "whois_#{Rails.env}" + begin + puts "\n------------------------ Create #{whois_db} ---------------------------------------\n" + ActiveRecord::Base.clear_all_connections! + conf = ActiveRecord::Base.configurations + + ActiveRecord::Base.connection.create_database(conf[whois_db]['database'].to_sym, conf[whois_db]) + rescue => e + puts "\n#{e}" + end + end + + desc 'Drop whois database' + task drop: [:environment] do + # just in case we allow only drop test, comment it out only for temp + if Rails.env.test? + whois_db = "whois_#{Rails.env}" + + begin + puts "\n------------------------ #{whois_db} drop ------------------------------\n" + ActiveRecord::Base.clear_all_connections! + ActiveRecord::Base.establish_connection(whois_db.to_sym) + + conf = ActiveRecord::Base.configurations + if ActiveRecord::Tasks::DatabaseTasks.drop(conf[whois_db]) + puts "#{conf[whois_db]['database']} dropped" + else + puts "Didn't find database #{whois_db}, no drop" + end + rescue => e + puts "\n#{e}" + end + else + puts 'Only for test' + end + end namespace :schema do desc 'Load whois schema into empty whois database'