From 9071e87aea26bc033d19e4795368a717eca709af Mon Sep 17 00:00:00 2001 From: Nelson Jovel Date: Mon, 25 Nov 2024 18:20:45 -0800 Subject: [PATCH] fix: order of deletion. Delete students after updating references to nil on survey item responses --- lib/tasks/one_off.rake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/tasks/one_off.rake b/lib/tasks/one_off.rake index da3f7d15..7bfd3dd2 100644 --- a/lib/tasks/one_off.rake +++ b/lib/tasks/one_off.rake @@ -78,9 +78,13 @@ namespace :one_off do desc "delete all student records incorrectly created by teacher responses" task delete_errant_student_records: :environment do wrong_response_ids = SurveyItemResponse.where(survey_item: SurveyItem.teacher_survey_items).pluck(:response_id).uniq + student_response_ids = SurveyItemResponse.where(response_id: wrong_response_ids, + survey_item: SurveyItem.student_survey_items).pluck(:response_id).uniq + wrong_response_ids -= student_response_ids + + SurveyItemResponse.where(response_id: wrong_response_ids).update_all(student_id: nil) StudentRace.where(student: Student.where(response_id: wrong_response_ids)).delete_all Student.where(response_id: wrong_response_ids).delete_all - SurveyItemResponse.where(response_id: wrong_response_ids).update_all(student_id: nil) end desc "print out percentage of nil values for range"