Do not erase all students when loading each file

pull/1/head
rebuilt 3 years ago
parent 3f493727b3
commit 3fcab58557

@ -6,9 +6,7 @@
require 'csv' require 'csv'
class StudentLoader class StudentLoader
def self.load_data(filepath:, reinitialize: true) def self.load_data(filepath:)
destroy_students if reinitialize
File.open(filepath) do |file| File.open(filepath) do |file|
headers = file.first headers = file.first
@ -20,12 +18,6 @@ class StudentLoader
end end
end end
def self.destroy_students
SurveyItemResponse.update_all(student_id: nil)
StudentRace.delete_all
Student.delete_all
end
def self.process_row(row:) def self.process_row(row:)
races = process_races(codes: race_codes(row:)) races = process_races(codes: race_codes(row:))
response_id = row['ResponseId'] || row['Responseid'] || row['ResponseID'] || response_id = row['ResponseId'] || row['Responseid'] || row['ResponseID'] ||

@ -75,11 +75,14 @@ namespace :data do
end end
desc 'load students' desc 'load students'
task load_students: :environment do task load_students: :environment do
SurveyItemResponse.update_all(student_id: nil)
StudentRace.delete_all
Student.delete_all
Dir.glob(Rails.root.join('data', 'survey_responses', '*student*.csv')).each do |file| Dir.glob(Rails.root.join('data', 'survey_responses', '*student*.csv')).each do |file|
puts "=====================> Loading student data from csv at path: #{file}" puts "=====================> Loading student data from csv at path: #{file}"
StudentLoader.load_data filepath: file StudentLoader.load_data filepath: file
end end
puts "=====================> Completed loading #{Student.count} survey responses" puts "=====================> Completed loading #{Student.count} students"
end end
desc 'reset all cache counters' desc 'reset all cache counters'

Loading…
Cancel
Save