|
|
|
@ -85,44 +85,44 @@ class InitializationDataController < ApplicationController
|
|
|
|
|
logger.info("#########challenge_questions: #{@challenge_questions.count}")
|
|
|
|
|
logger.info("#########attachments: #{@attachments.count}")
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
copy_subject_data
|
|
|
|
|
copy_stages_data
|
|
|
|
|
copy_stage_shixuns_data
|
|
|
|
|
copy_shixun_data
|
|
|
|
|
copy_shixun_info_data
|
|
|
|
|
copy_shixun_mirror_repositories_data
|
|
|
|
|
copy_shixun_tag_repertoires_data
|
|
|
|
|
copy_shixun_service_configs_data
|
|
|
|
|
copy_challenges_data
|
|
|
|
|
copy_challenge_answers_data
|
|
|
|
|
copy_challenge_tags_data
|
|
|
|
|
copy_test_sets_data
|
|
|
|
|
copy_challenge_chooses_data
|
|
|
|
|
copy_challenge_questions_data
|
|
|
|
|
copy_shixun_members_data
|
|
|
|
|
copy_subject_members_data
|
|
|
|
|
# copy_subject_data
|
|
|
|
|
# copy_stages_data
|
|
|
|
|
# copy_stage_shixuns_data
|
|
|
|
|
# copy_shixun_data
|
|
|
|
|
# copy_shixun_info_data
|
|
|
|
|
# copy_shixun_mirror_repositories_data
|
|
|
|
|
# copy_shixun_tag_repertoires_data
|
|
|
|
|
# copy_shixun_service_configs_data
|
|
|
|
|
# copy_challenges_data
|
|
|
|
|
# copy_challenge_answers_data
|
|
|
|
|
# copy_challenge_tags_data
|
|
|
|
|
# copy_test_sets_data
|
|
|
|
|
# copy_challenge_chooses_data
|
|
|
|
|
# copy_challenge_questions_data
|
|
|
|
|
# copy_shixun_members_data
|
|
|
|
|
# copy_subject_members_data
|
|
|
|
|
copy_attachment_data
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 链接库
|
|
|
|
|
def connect_to_origin_date database
|
|
|
|
|
ActiveRecord::Base.establish_connection(
|
|
|
|
|
adapter: "mysql2",
|
|
|
|
|
host: "rm-bp13v5020p7828r5r.mysql.rds.aliyuncs.com",
|
|
|
|
|
username: "testeducoder",
|
|
|
|
|
password: "TEST@123",
|
|
|
|
|
database: "#{database}",
|
|
|
|
|
encoding: "utf8"
|
|
|
|
|
)
|
|
|
|
|
# ActiveRecord::Base.establish_connection(
|
|
|
|
|
# adapter: "mysql2",
|
|
|
|
|
# host: "127.0.0.1",
|
|
|
|
|
# username: "root",
|
|
|
|
|
# password: "123456",
|
|
|
|
|
# host: "rm-bp13v5020p7828r5r.mysql.rds.aliyuncs.com",
|
|
|
|
|
# username: "testeducoder",
|
|
|
|
|
# password: "TEST@123",
|
|
|
|
|
# database: "#{database}",
|
|
|
|
|
# encoding: "utf8"
|
|
|
|
|
# )
|
|
|
|
|
ActiveRecord::Base.establish_connection(
|
|
|
|
|
adapter: "mysql2",
|
|
|
|
|
host: "127.0.0.1",
|
|
|
|
|
username: "root",
|
|
|
|
|
password: "123456",
|
|
|
|
|
database: "#{database}",
|
|
|
|
|
encoding: "utf8"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -386,10 +386,16 @@ class InitializationDataController < ApplicationController
|
|
|
|
|
# 获取关卡附件
|
|
|
|
|
def get_attachment_data
|
|
|
|
|
task_pass = Challenge.where(id: @challenges).where("task_pass like '%/api/attachments/%'").pluck(:task_pass)
|
|
|
|
|
shixun_description = ShixunInfo.where(id: @shixuns).where("description like '%/api/attachments/%'").pluck(:description)
|
|
|
|
|
att_ids = []
|
|
|
|
|
# 附件的格式为(/api/attachments/ + 附件id)的形式,因此下面的正文匹配是为了取出附件的id,方便迁移attachments
|
|
|
|
|
task_pass.each do |tp|
|
|
|
|
|
att_ids += tp.scan(/\(\/api\/attachments\/.+\)/).map{|s|s.match(/\d+/)[0]}
|
|
|
|
|
att_ids += tp.scan(/\/api\/attachments\/.+\"/).map{|s|s.match(/\d+/)[0]}
|
|
|
|
|
end
|
|
|
|
|
shixun_description.each do |sd|
|
|
|
|
|
att_ids += sd.scan(/\(\/api\/attachments\/.+\)/).map{|s|s.match(/\d+/)[0]}
|
|
|
|
|
att_ids += sd.scan(/\/api\/attachments\/.+\"/).map{|s|s.match(/\d+/)[0]}
|
|
|
|
|
end
|
|
|
|
|
@attachments = Attachment.where(id: att_ids).to_a
|
|
|
|
|
end
|
|
|
|
|