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_countpour refléter les réactions
Sans l’exécution de la synchronisation :
- Les réactions existent dans
discourse_reactions_reaction_users - Mais il n’y a pas d’enregistrements
PostActioncorrespondants - Et
posts.like_countreste à 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.