Rails 콘솔에서 u.delete로 사용자 삭제해도 이메일이 여전히 '사용 중'으로 표시됨

도메인을 변경한 후, 기존에 관리자 계정에 지정했던 이메일 주소가 더 이상 존재하지 않았습니다. 그래서 이메일 주소를 변경하려고 했으나, 기존 이메일로 인증을 받아야 하기 때문에 변경할 수 없었습니다.

결국 여러 가지 작업을 수행하고, 일부 이메일을 변경했으며, 두 번째 관리자 계정을 생성한 뒤 콘솔을 통해 해당 계정을 삭제했습니다. 하지만 이제 두 번째 관리자 계정에 지정했던 이메일을 다시 사용할 수 없습니다.

이 문제를 지원(Support) 항목에 올릴지, 버그(Bugs) 항목에 올릴지 확신이 서지 않습니다.
솔직히 사용할 수 있는 백업이 하나 있지만, 그 전에 이 문제가 버그인지 확인받고 싶습니다. 전체 초기화나 백업 복원 없이 이 문제를 해결할 방법이 있을까요?

데이터 탐색기 플러그인을 설치한 후, 삭제하려는 이메일이 여전히 남아 있는 테이블을 확인해 보세요.

100개 이상의 서로 다른 스키마를 가진 테이블에 대해 100개 이상의 고유한 쿼리를 수동으로 작성해야 한다는 제안을 하시는 것이 아니라면, 어떤 테이블에서 조회하거나 삭제해야 하는지 알아야 합니다.

누군가가 이 게시물을 버그 카테고리로 다시 분류해 주시면 감사하겠습니다.

이것은 버그가 아닐 가능성이 높습니다. 콘솔에서 사용자를 어떻게 삭제했는지에 따라 달라집니다.

콘솔에서 다음을 검색해 보세요:

UserEmail.where(email: '<삭제된_사용자의_이메일>')

결과가 반환되면, 반환된 user_id로 사용자를 검색해 보세요:

User.find_by(id: <이메일_레코드_id>)

제 추측으로는, 해당 이메일이 삭제한 사용자에게 belonged 했기 때문에 사용자가 반환되지 않을 것입니다. 만약 그렇다면, 이메일 레코드에 destroy!를 호출하는 것이 안전할 것입니다. 이 작업을 시도하기 전에 사이트의 최신 백업이 있는지 반드시 확인하세요.

만약 이메일이 기존 사용자에게 belonged 한 경우, 이메일 레코드를 삭제하지 마세요.

3개의 좋아요

콘솔에서 사용자를 삭제하려면 UserDestroyer를 사용하세요. https://meta.discourse.org/t/deleting-users-in-rails-console/141540/2를 참고하세요.

나를 위한 참고: 이것을 #howto:faq로 만들어야 함

5개의 좋아요