FIX: Skip whisper posts when updating topic like count (#10157)

This commit is contained in:
Bianca Nenciu
2020-07-13 09:30:00 +03:00
committed by GitHub
parent 54d002f7db
commit 4492718864
3 changed files with 52 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
# frozen_string_literal: true
class FixTopicLikeCount < ActiveRecord::Migration[6.0]
def up
return if DB.query_single("SELECT * FROM site_settings WHERE name = 'enable_whispers' AND value = 't'").empty?
DB.exec(<<~SQL, whisper: Post.types[:whisper])
UPDATE topics SET like_count = tbl.like_count
FROM (
SELECT topic_id, SUM(like_count) like_count
FROM posts
WHERE deleted_at IS NULL AND post_type <> :whisper
GROUP BY topic_id
) AS tbl
WHERE topics.id = tbl.topic_id
AND topics.like_count <> tbl.like_count
SQL
end
def down
raise ActiveRecord::IrreversibleMigration
end
end