diff --git a/app/models/doi.rb b/app/models/doi.rb index f2fb3f0d4..b1a900459 100644 --- a/app/models/doi.rb +++ b/app/models/doi.rb @@ -871,6 +871,15 @@ def self.delete_test_dois(from_date: nil) end end + #to be used after DOIS transfer to another RA + def self.delete_dois_by_prefix(prefix) + collection.where("doi LIKE ?", prefix).find_each do |d| + logger = Logger.new(STDOUT) + logger.info "Deleted #{d.doi}, last updated #{d.updated.iso8601}." + d.destroy + end + end + # register DOIs in the handle system that have not been registered yet # providers ethz and europ register their DOIs in the handle system themselves and are ignored def self.set_handle diff --git a/lib/tasks/doi.rake b/lib/tasks/doi.rake index 25d71b6b8..5558539c2 100644 --- a/lib/tasks/doi.rake +++ b/lib/tasks/doi.rake @@ -129,6 +129,12 @@ namespace :doi do Doi.delete_test_dois(from_date: from_date) end + desc 'Delete DOIs with by prefix' + task :delete_test_dois => :environment do + prefix = ENV['PREFIX_TO_DELETE'] + Doi.delete_dois_by_prefix(prefix) if prefix.present? + end + desc 'Migrates landing page data handling camelCase changes at same time' task :migrate_landing_page => :environment do Doi.migrate_landing_page