From 59a2767de8c5feae591ad835530304fe3aa3cc79 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Fri, 6 Jul 2018 16:22:54 +0800 Subject: [PATCH] Ensure that we restore the site setting in posts:rebake rake task. --- lib/tasks/posts.rake | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/tasks/posts.rake b/lib/tasks/posts.rake index cafe17bc2c6..e6218107e84 100644 --- a/lib/tasks/posts.rake +++ b/lib/tasks/posts.rake @@ -81,22 +81,24 @@ end def rebake_posts(opts = {}) puts "Rebaking post markdown for '#{RailsMultisite::ConnectionManagement.current_db}'" - disable_edit_notifications = SiteSetting.disable_edit_notifications - SiteSetting.disable_edit_notifications = true + begin + disable_edit_notifications = SiteSetting.disable_edit_notifications + SiteSetting.disable_edit_notifications = true - total = Post.count - rebaked = 0 + total = Post.count + rebaked = 0 - # TODO: make this resumable because carrying around 20 million ids in memory is not a great idea long term - Post.order(id: :desc).pluck(:id).in_groups_of(1000, false).each do |batched_post_ids| - Post.order(created_at: :desc).where(id: batched_post_ids).each do |post| - rebake_post(post, opts) - print_status(rebaked += 1, total) + # TODO: make this resumable because carrying around 20 million ids in memory is not a great idea long term + Post.order(id: :desc).pluck(:id).in_groups_of(1000, false).each do |batched_post_ids| + Post.order(created_at: :desc).where(id: batched_post_ids).each do |post| + rebake_post(post, opts) + print_status(rebaked += 1, total) + end end + ensure + SiteSetting.disable_edit_notifications = disable_edit_notifications end - SiteSetting.disable_edit_notifications = disable_edit_notifications - puts "", "#{rebaked} posts done!", "-" * 50 end