当缺少反应计数时,反应有时不会显示

这是因为 discourse_reactions_like_sync_enabled 设置为 false。这是在从2024 年 5 月的迁移中故意为之,以避免干扰现有数据。

当此设置禁用时,ReactionLikeSynchronizer 不会运行。此同步器负责:

  • 为反应创建 PostAction(点赞)记录
  • 更新 posts.like_count 以反映反应

在同步不运行的情况下:

  1. 反应存在于 discourse_reactions_reaction_users
  2. 但没有相应的 PostAction 记录
  3. 并且 posts.like_count 保持为 0

您对时间点的直觉是正确的——2023 年/2024 年初的帖子是在此同步不活动时添加了反应,因此它们的 like_count 从未更新。旧的序列化器逻辑在 count = 0can_act = false(撤销窗口已过期)时会完全省略点赞操作。

修复程序不会纠正底层数据差异——它只是确保即使 PostAction/like_count 数据不同步,用户界面也能正确显示反应。在 discourse_reactions_like_sync_enabled = false 的站点上,独立于 PostAction 记录存在的反应是预期行为。

1 个赞