24 lines
665 B
Ruby
24 lines
665 B
Ruby
|
# 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
|