# 첫 번째 좋아요 배지를 제거할 수 없습니다

**URL:** https://meta.discourse.org/t/first-like-badge-cannot-be-removed/382109
**Category:** Feature
**Tags:** badges
**Created:** [9월 9, 2025, 7:06오후 UTC](https://meta.discourse.org/t/first-like-badge-cannot-be-removed/382109 "2025-09-09T19:06:59Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![KockaAdmiralac](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kockaadmiralac/32/518624_2.png) [@KockaAdmiralac](https://meta.discourse.org/u/KockaAdmiralac)
#### Post date: [9월 9, 2025, 7:06오후 UTC](https://meta.discourse.org/t/first-like-badge-cannot-be-removed/382109/1 "2025-09-09T19:06:59Z")

</div>

**설명:** 사용자가 자신의 첫 좋아요 배지를 취소해 달라고 요청했습니다. 사용자는 게시물을 좋아요 취소했지만, 배지가 계속 다시 부여되고 있었기 때문입니다. 배경은 지원 카테고리에서 [이전 게시글](https://meta.discourse.org/t/cannot-revoke-badge-from-user/381089)에서 확인할 수 있습니다.

**재현 단계:**

1. 새 사용자 생성
2. 게시물에 좋아요
3. 첫 좋아요 배지 획득
4. 게시물 좋아요 취소
5. 관리자 계정으로 전환
6. 좋아요를 누른 사용자의 관리자 패널로 이동
7. 배지 편집 옵션 방문
8. 첫 좋아요 배지에서 “취소” 클릭
9. 잠시 대기 (이 특정 배지에 대한 백필 작업이 언제 실행되는지 정확히 모르지만, 하루 정도면 충분할 것입니다. Sidekiq에서 배지 관련 작업을 모두 트리거하여 속도를 높이는 것도 시도해 볼 수 있습니다.)
10. 해당 배지가 싫어한(좋아요 취소한) 동일한 게시물에 대해, 좋아요를 누른 날짜와 동일한 날짜로 사용자에게 자동으로 다시 부여됨

이 문제는 배지 부여를 위한 SQL 쿼리의 [이 라인](https://github.com/discourse/discourse/blob/db974047e4a3bba8ef31f63b68e46084558a2a5b/lib/badge_queries.rb#L89)으로 좁혀졌습니다. 좋아요 취소 후에도 `post_actions` 테이블의 좋아요 액션 행은 여전히 존재하지만, `deleted_at` 컬럼에 날짜 값이 설정되어 있으며, 쿼리는 이를 고려하지 않기 때문입니다. 이 문제의 수정 방법은 서브쿼리의 WHERE 절을 다음과 같이 변경하는 것일 것이라고 생각합니다:

```plaintext
      WHERE post_action_type_id = 2 AND
        pa.deleted_at IS NULL AND
        (:backfill OR pa.post_id IN (:post_ids) )

```

하지만 저는 개발 환경을 설정하지 않았고, 이 수정 사항을 직접 테스트할 시간이 많이 없습니다.

**우선순위/중요도** : 저는 이미 관련 `post_actions` 행을 삭제하여 이 문제를 스스로 해결했습니다. 그리고 이전에 이런 요청을 받은 적이 없습니다. 아마도 이는 매우 높은 우선순위는 아닐 것입니다?

---

_[View the full topic](https://meta.discourse.org/t/first-like-badge-cannot-be-removed/382109)._
