From aa38aa6085b25fed9e1a11b6d4892c7615b3c4b6 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Sun, 15 May 2016 13:12:07 +0300 Subject: [PATCH 1/7] Add task to remove non-existent track_id from Event. --- lib/tasks/events.rake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 lib/tasks/events.rake diff --git a/lib/tasks/events.rake b/lib/tasks/events.rake new file mode 100644 index 00000000..e90e3715 --- /dev/null +++ b/lib/tasks/events.rake @@ -0,0 +1,16 @@ +namespace :events do + desc 'Create demo data using our factories' + task fix_wrong_track: :environment do + events = Event.all.select { |e| e.track_id && Track.find_by(id: e.track_id).nil? } + puts "Will remove track_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." + + if events.any? + puts "Event IDs: #{events.map(&:id)}" + events.each do |event| + event.track_id = nil + event.save! + end + puts 'All done!' + end + end +end From eb8eda927938b6d932606ebaa905579e54a1d138 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Thu, 19 May 2016 12:57:28 +0300 Subject: [PATCH 2/7] Add task to fix room and difficulty_level foreign_keys --- lib/tasks/events.rake | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/tasks/events.rake b/lib/tasks/events.rake index e90e3715..d957d014 100644 --- a/lib/tasks/events.rake +++ b/lib/tasks/events.rake @@ -1,5 +1,6 @@ namespace :events do - desc 'Create demo data using our factories' + desc 'Nullifies wrong foreign keys for Track, Room, DifficultyLevel' + task fix_wrong_track: :environment do events = Event.all.select { |e| e.track_id && Track.find_by(id: e.track_id).nil? } puts "Will remove track_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." @@ -13,4 +14,32 @@ namespace :events do puts 'All done!' end end + + task fix_wrong_difficulty_level: :environment do + events = Event.all.select { |e| e.difficulty_level_id && DifficultyLevel.find_by(id: e.difficulty_level_id).nil? } + puts "Will remove difficulty_level_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." + + if events.any? + puts "Event IDs: #{events.map(&:id)}" + events.each do |event| + event.difficulty_level_id = nil + event.save! + end + puts 'All done!' + end + end + + task fix_wrong_room: :environment do + events = Event.all.select { |e| e.room_id && Room.find_by(id: e.room_id).nil? } + puts "Will remove track_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." + + if events.any? + puts "Event IDs: #{events.map(&:id)}" + events.each do |event| + event.room_id = nil + event.save! + end + puts 'All done!' + end + end end From bd4f2e26bebf415361455305c67dd3e689364147 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Thu, 19 May 2016 14:36:04 +0300 Subject: [PATCH 3/7] Single task --- lib/tasks/events.rake | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/tasks/events.rake b/lib/tasks/events.rake index d957d014..bd9cf47c 100644 --- a/lib/tasks/events.rake +++ b/lib/tasks/events.rake @@ -1,7 +1,8 @@ namespace :events do desc 'Nullifies wrong foreign keys for Track, Room, DifficultyLevel' - task fix_wrong_track: :environment do + task fix_wrong_foreign_keys: :environment do + # Tracks events = Event.all.select { |e| e.track_id && Track.find_by(id: e.track_id).nil? } puts "Will remove track_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." @@ -11,11 +12,10 @@ namespace :events do event.track_id = nil event.save! end - puts 'All done!' + puts 'Fixed track_id!' end - end - task fix_wrong_difficulty_level: :environment do + # Difficulty levels events = Event.all.select { |e| e.difficulty_level_id && DifficultyLevel.find_by(id: e.difficulty_level_id).nil? } puts "Will remove difficulty_level_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." @@ -25,11 +25,10 @@ namespace :events do event.difficulty_level_id = nil event.save! end - puts 'All done!' + puts 'Fixed difficulty_level_id!' end - end - task fix_wrong_room: :environment do + #Rooms events = Event.all.select { |e| e.room_id && Room.find_by(id: e.room_id).nil? } puts "Will remove track_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." @@ -39,7 +38,7 @@ namespace :events do event.room_id = nil event.save! end - puts 'All done!' + puts 'Fixed room_id!' end end end From 7560e0bc0cd41ddaa125ef0e032becea31e25c8d Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Thu, 19 May 2016 15:25:27 +0300 Subject: [PATCH 4/7] namespace data --- lib/tasks/events.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/events.rake b/lib/tasks/events.rake index bd9cf47c..195ad879 100644 --- a/lib/tasks/events.rake +++ b/lib/tasks/events.rake @@ -1,4 +1,4 @@ -namespace :events do +namespace :data do desc 'Nullifies wrong foreign keys for Track, Room, DifficultyLevel' task fix_wrong_foreign_keys: :environment do From 63df0d880bd1cd95c4999825a97d125aafd47bd6 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Fri, 20 May 2016 11:50:07 +0300 Subject: [PATCH 5/7] dry --- lib/tasks/data.rake | 29 ++++++++++++++++++++++++++++ lib/tasks/events.rake | 44 ------------------------------------------- 2 files changed, 29 insertions(+), 44 deletions(-) create mode 100644 lib/tasks/data.rake delete mode 100644 lib/tasks/events.rake diff --git a/lib/tasks/data.rake b/lib/tasks/data.rake new file mode 100644 index 00000000..596cb0fc --- /dev/null +++ b/lib/tasks/data.rake @@ -0,0 +1,29 @@ +namespace :data do + desc 'Nullify wrong foreign keys' + + task events: :environment do + # Track + events_track = Event.all.select { |e| e.track_id && Track.find_by(id: e.track_id).nil? } + nullify_attribute(events_track, 'track_id') + + # Difficulty level + events_difficulty_level = Event.all.select { |e| e.difficulty_level_id && DifficultyLevel.find_by(id: e.difficulty_level_id).nil? } + nullify_attribute(events_difficulty_level, 'difficulty_level_id') + + # Room + events_room = Event.all.select { |e| e.room_id && Room.find_by(id: e.room_id).nil? } + nullify_attribute(events_room, 'room_id') + end + + def nullify_attribute(collection, attribute) + puts "Will nullify #{attribute} in #{ActionController::Base.helpers.pluralize(collection.length, 'event')}." + if collection.any? + puts "IDs: #{collection.map(&:id)}" + collection.each do |item| + item.send(attribute+'=', nil) + item.save! + end + puts "Fixed #{attribute}!" + end + end +end diff --git a/lib/tasks/events.rake b/lib/tasks/events.rake deleted file mode 100644 index 195ad879..00000000 --- a/lib/tasks/events.rake +++ /dev/null @@ -1,44 +0,0 @@ -namespace :data do - desc 'Nullifies wrong foreign keys for Track, Room, DifficultyLevel' - - task fix_wrong_foreign_keys: :environment do - # Tracks - events = Event.all.select { |e| e.track_id && Track.find_by(id: e.track_id).nil? } - puts "Will remove track_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." - - if events.any? - puts "Event IDs: #{events.map(&:id)}" - events.each do |event| - event.track_id = nil - event.save! - end - puts 'Fixed track_id!' - end - - # Difficulty levels - events = Event.all.select { |e| e.difficulty_level_id && DifficultyLevel.find_by(id: e.difficulty_level_id).nil? } - puts "Will remove difficulty_level_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." - - if events.any? - puts "Event IDs: #{events.map(&:id)}" - events.each do |event| - event.difficulty_level_id = nil - event.save! - end - puts 'Fixed difficulty_level_id!' - end - - #Rooms - events = Event.all.select { |e| e.room_id && Room.find_by(id: e.room_id).nil? } - puts "Will remove track_id from #{ActionController::Base.helpers.pluralize(events.length, 'event')}." - - if events.any? - puts "Event IDs: #{events.map(&:id)}" - events.each do |event| - event.room_id = nil - event.save! - end - puts 'Fixed room_id!' - end - end -end From d17268e4e15fde2b8c4a6d52e4514ca705b95d7d Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Mon, 23 May 2016 14:56:39 +0300 Subject: [PATCH 6/7] change name of task --- lib/tasks/data.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/data.rake b/lib/tasks/data.rake index 596cb0fc..c0ab8e69 100644 --- a/lib/tasks/data.rake +++ b/lib/tasks/data.rake @@ -1,7 +1,7 @@ namespace :data do desc 'Nullify wrong foreign keys' - task events: :environment do + task nullify_nonexistent_foreign_keys_for_events: :environment do # Track events_track = Event.all.select { |e| e.track_id && Track.find_by(id: e.track_id).nil? } nullify_attribute(events_track, 'track_id') From 7f97079e9b7c86f99f954430c872b0dc804a33f5 Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Mon, 23 May 2016 15:00:02 +0300 Subject: [PATCH 7/7] name of task --- lib/tasks/data.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/data.rake b/lib/tasks/data.rake index c0ab8e69..215a1efe 100644 --- a/lib/tasks/data.rake +++ b/lib/tasks/data.rake @@ -1,7 +1,7 @@ namespace :data do desc 'Nullify wrong foreign keys' - task nullify_nonexistent_foreign_keys_for_events: :environment do + task nullify_nonexistent_foreign_keys: :environment do # Track events_track = Event.all.select { |e| e.track_id && Track.find_by(id: e.track_id).nil? } nullify_attribute(events_track, 'track_id')