class MigrateStudentWorks < ActiveRecord::Migration def up count = Course.all.count / 30 + 2 transaction do for i in 1 ... count do i Course.page(i).per(30).each do |course| homework_ids = course.homework_commons.blank? ? "(-1)" : "(" + course.homework_commons.map{|hw| hw.id}.join(",") + ")" student_ids = course.student.blank? ? "(-1)" : "(" + course.student.map{|st| st.student_id}.join(",") + ")" student_works = StudentWork.where("homework_common_id in #{homework_ids} and user_id not in #{student_ids}") student_works.update_all(:is_delete => 1) end end end end def down end end