Questo accade perché discourse_reactions_like_sync_enabled è impostato su false. Ciò è stato fatto intenzionalmente dalla migrazione da maggio 2024 per evitare di interrompere i dati esistenti.
Quando questa impostazione è disabilitata, il ReactionLikeSynchronizer non viene eseguito. Questo sincronizzatore è responsabile di:
- Creare record
PostAction(like) per le reazioni - Aggiornare
posts.like_countper riflettere le reazioni
Senza l’esecuzione della sincronizzazione:
- Le reazioni esistono in
discourse_reactions_reaction_users - Ma non ci sono record
PostActioncorrispondenti - E
posts.like_countrimane a 0
La tua intuizione sui tempi è esatta: i post del 2023/inizio 2024 hanno avuto reazioni aggiunte quando questa sincronizzazione non era attiva, quindi il loro like_count non è mai stato aggiornato. La vecchia logica del serializzatore ha quindi omesso completamente l’azione “mi piace” quando sia count = 0 CHE can_act = false (la finestra di annullamento è scaduta).
La correzione non risolve la discrepanza sottostante dei dati, ma assicura semplicemente che l’interfaccia utente visualizzi correttamente le reazioni anche quando i dati PostAction/like_count non sono sincronizzati. Sui siti in cui discourse_reactions_like_sync_enabled = false, l’esistenza di reazioni indipendenti dai record PostAction è il comportamento previsto.