Les réactions ne s'affichent parfois pas lorsque le compte de réaction est manquant

C’est parce que discourse_reactions_like_sync_enabled est défini sur false. Cela a été fait intentionnellement lors de la migration de mai 2024 pour éviter de perturber les données existantes.

Lorsque ce paramètre est désactivé, le ReactionLikeSynchronizer ne s’exécute pas. Ce synchroniseur est responsable de :

  • La création des enregistrements PostAction (like) pour les réactions
  • La mise à jour de posts.like_count pour refléter les réactions

Sans l’exécution de la synchronisation :

  1. Les réactions existent dans discourse_reactions_reaction_users
  2. Mais il n’y a pas d’enregistrements PostAction correspondants
  3. Et posts.like_count reste à 0

Votre intuition concernant le calendrier est tout à fait correcte - les publications de 2023/début 2024 ont vu des réactions ajoutées lorsque cette synchronisation n’était pas active, donc leur like_count n’a jamais été mis à jour. La logique de l’ancien sérialiseur a ensuite omis complètement l’action de like lorsque count = 0 ET can_act = false (fenêtre d’annulation expirée).

La correction ne corrige pas la divergence de données sous-jacente - elle garantit simplement que l’interface utilisateur affiche correctement les réactions même lorsque les données PostAction/like_count ne sont pas synchronisées. Sur les sites où discourse_reactions_like_sync_enabled = false, l’existence de réactions indépendantes des enregistrements PostAction est le comportement attendu.

1 « J'aime »