# 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