recruit_news/lib/recruit_news_mod/migrate.rb

38 lines
1.2 KiB
Ruby

module RecruitNewsMod
module Migrate
def self.call
puts ['event news migrate start']
gem_root = RecruitNewsMod::Engine.root
require File.join(gem_root, 'app/models/recruit_news_setting')
require File.join(gem_root, 'app/models/recruit_news')
require File.join(gem_root, 'app/models/recruit_news_feed')
require File.join(gem_root, 'app/models/recruit_news_feed_cache')
setting = RecruitNewsSetting.first
if !setting.migrate_flag.include?("v1")
RecruitNews.all.pluck(:id, :title).each do |id, title_translations|
if title_translations.nil?
next
end
RecruitNews.where(id: id).view.update_many({
"$set" => {
title_plain_text: OrbitHelper.get_plain_text_translations(title_translations)
}
})
end
setting.migrate_flag << "v1"
setting.save
end
#solve bug for thousands of generated feed cache
if RecruitNewsFeedCache.count > RecruitNewsFeed.count*5
RecruitNewsFeedCache.collection.drop
end
RecruitNewsFeedCache.regenerate_all
puts ['event news migrate end']
end
end
end