diff --git a/db/migrate/20190314080802_create_shixun_student_works.rb b/db/migrate/20190314080805_create_shixun_student_works.rb similarity index 81% rename from db/migrate/20190314080802_create_shixun_student_works.rb rename to db/migrate/20190314080805_create_shixun_student_works.rb index 240adc00..55e217ff 100644 --- a/db/migrate/20190314080802_create_shixun_student_works.rb +++ b/db/migrate/20190314080805_create_shixun_student_works.rb @@ -13,16 +13,16 @@ class CreateShixunStudentWorks < ActiveRecord::Migration end def up - ActiveRecord::Base.transaction do - begin - works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and (work_score is null or work_score = 0)") - works.update_all(:myshixun_id => 0, :work_status => 0, :work_score => nil, :final_score => nil, - :cost_time => 0, :update_time => nil, :compelete_status => 0, :commit_time => nil) + begin + works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and (work_score is null or work_score = 0)") + works.update_all(:myshixun_id => 0, :work_status => 0, :work_score => nil, :final_score => nil, + :cost_time => 0, :update_time => nil, :compelete_status => 0, :commit_time => nil) - shixun_works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and work_score > 0") - shixun_works.each do |work| - shixun = work.homework_common.try(:homework_commons_shixuns).try(:shixun) - user = work.user + shixun_works = StudentWork.where("myshixun_id != 0 and myshixun_id not in (select id from myshixuns) and work_score > 0") + shixun_works.each do |work| + shixun = work.homework_common.try(:homework_commons_shixuns).try(:shixun) + user = work.user + ActiveRecord::Base.transaction do if shixun.present? && user.present? # 创建新的myshixun和games # fork版本库,如果用户没有同步,则先同步用户 @@ -80,11 +80,11 @@ class CreateShixunStudentWorks < ActiveRecord::Migration end end end - rescue Exception => e - puts ("###failed to exec shixun: current task id is #{e}") - # g.delete_project(gshixun.id) if gshixun.try(:id).present? - raise ActiveRecord::Rollback end + rescue Exception => e + puts ("###failed to exec shixun: current task id is #{e}") + # g.delete_project(gshixun.id) if gshixun.try(:id).present? + raise ActiveRecord::Rollback end end