사용자 이름을 삭제했는데 다른 계정에 해당 이름을 사용할 수 없습니다

username이 "XXX"인 사용자를 삭제했고, 이제 다른 사용자의 username을 삭제된 사용자의 username과 동일하게 변경하려고 합니다. 하지만 변경이 되지 않습니다. "Username have to be unique"라는 메시지가 표시됩니다.

username이 이미 사용 중인지, 아니면 완전히 삭제되었는지 어떻게 확인할 수 있을까요?

감사합니다

관리자 → 사용자 → 사용자 이름으로 필터링을 통해 접근할 수 있습니다.
또는 data explorer를 사용할 수도 있습니다.

네, 관리자 → 사용자에서 해당 사용자를 삭제했지만, 삭제한 사용자명을 다시 사용할 수 없습니다.

그렇다면 data-explorer를 사용해 이 요청을 실행해 보세요:

SELECT username FROM users WHERE username LIKE '%username%' 

몇 가지 단서를 얻을 수 있을지도 모릅니다.

결과가 없습니다. 하지만 삭제된 사용자의 사용자명을 사용하려고 하면 사용자명이 고유해야 한다는 메시지가 표시됩니다.

그 사용자명이 있을 수 있는 다른 테이블은 무엇일까요?

잘 모르겠어요. 어떤 사용자명을 사용하려고 하시나요?
아마 예약된 사용자명을 시도하신 건지 모르겠지만, 그렇다면 다른 메시지가 표시될 것 같은데요…
또한 이전 사용자는 그 이름을 선택할 수 없었을 겁니다 :man_shrugging:t6:

사용자명이 이미 사용 중인지 확인하는 코드는 다음과 같습니다:

  USERNAME_EXISTS_SQL = <<~SQL
    (SELECT users.id AS id, true as is_user FROM users
    WHERE users.username_lower = :username)

    UNION ALL

    (SELECT groups.id, false as is_user FROM groups
    WHERE lower(groups.name) = :username)
  SQL

삭제된 사용자 중 아무거나요?

수정: 그룹 이름과 동일한 이름으로 사용자를 변경해 봤는데, 사용자명이 고유해야 한다는 메시지가 나타났습니다. 혹시 이것이 문제일까요?

이 이름의 그룹이 있으신가요? @Canapin이 말한 대로 사용자와 그룹은 네임스페이스를 공유합니다.

아니요, 같은 이름의 그룹은 없습니다.

또 한 가지, DM 메시지에서 삭제된 사용자의 사용자명을 언급할 수 있습니다.