Das liegt daran, dass discourse_reactions_like_sync_enabled auf false gesetzt ist. Dies geschah absichtlich durch die Migration von Mai 2024, um bestehende Daten nicht zu stören.
Wenn diese Einstellung deaktiviert ist, läuft der ReactionLikeSynchronizer nicht. Dieser Synchronisierer ist verantwortlich für:
- Das Erstellen von
PostAction(Like)-Einträgen für Reaktionen - Das Aktualisieren von
posts.like_count, um Reaktionen widerzuspiegeln
Ohne laufende Synchronisierung:
- Reaktionen existieren in
discourse_reactions_reaction_users - Aber es gibt keine entsprechenden
PostAction-Einträge - Und
posts.like_countbleibt bei 0
Ihre Vermutung bezüglich des Zeitpunkts ist genau richtig – die Beiträge aus 2023/Anfang 2024 erhielten Reaktionen, als diese Synchronisierung nicht aktiv war, sodass ihr like_count nie aktualisiert wurde. Die alte Serializer-Logik hat dann die Like-Aktion komplett weggelassen, wenn sowohl count = 0 ALS AUCH can_act = false (Rücknahmefrist abgelaufen) war.
Die Korrektur behebt die zugrunde liegende Dateninkonsistenz nicht – sie stellt lediglich sicher, dass die Benutzeroberfläche Reaktionen korrekt anzeigt, auch wenn die PostAction/like_count-Daten nicht synchronisiert sind. Auf Seiten, auf denen discourse_reactions_like_sync_enabled = false ist, ist das unabhängige Vorhandensein von Reaktionen zu PostAction-Einträgen das erwartete Verhalten.