좋아요 수가 없으면 반응이 표시되지 않는 경우 있음

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 = 0이면서 can_act = false(취소 창 만료)인 경우 좋아요 액션을 완전히 생략했습니다.

해결 방법은 근본적인 데이터 불일치를 수정하는 것이 아니라, PostAction/like_count 데이터가 동기화되지 않았더라도 UI가 리액션을 올바르게 표시하도록 보장하는 것입니다. discourse_reactions_like_sync_enabled = false인 사이트에서는 PostAction 레코드와 독립적으로 리액션이 존재하는 것이 예상되는 동작입니다.

1개의 좋아요