From 8a4a9552af5e13531aa9002b6184057dfc29e3e7 Mon Sep 17 00:00:00 2001 From: Nishanth Vijayan Date: Tue, 21 Jun 2016 12:22:12 +0530 Subject: [PATCH] Add rake task to set conference_id in pre-existing versions --- lib/tasks/version.rake | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/tasks/version.rake diff --git a/lib/tasks/version.rake b/lib/tasks/version.rake new file mode 100644 index 00000000..084ff181 --- /dev/null +++ b/lib/tasks/version.rake @@ -0,0 +1,21 @@ +namespace :data do + desc 'Sets conference_id in all pre-existing PaperTrail::Version objects' + task set_conference_in_versions: :environment do + + PaperTrail::Version.where(conference_id: nil, item_type: ['Conference', 'Event']).each do |version| + # All pre-existing versions are either of Conference or Event + if version.item_type == 'Conference' + version.update_attributes(conference_id: version.item_id) + + elsif version.item_type == 'Event' + event = (version.item || version.reify || version.next.reify) + if event.try(:program) + version.update_attributes(conference_id: event.program.conference_id) + else + puts "Setting conference_id value failed for PaperTrail::Version object with ID=#{version.id}" + end + end + end + puts 'All done!' + end +end