새로운 Discourse를 must approve users 설정으로 구성하던 중, 테스트 사용자를 생성한 후 삭제하면 나중에 실제 사용자가 가입할 때 동일한 사용자 ID가 재사용되는 것을 발견했습니다. 그러나 public.reviewables 테이블에 동일한 target_id를 가진 행이 남아 있어 두 번째 사용자를 위한 새로운 행이 생성되지 않았습니다. 그 결과, 새 사용자의 승인을 요청할 때 UI에 이미 삭제된 사용자 이름이 표시되었습니다.
2개의 좋아요
초기 테스트 사용자를 어떻게 삭제하셨나요? Discourse 사용자 인터페이스를 통해 삭제하셨나요, 아니면 Rails 콘솔을 통해 삭제하셨나요?
2개의 좋아요
사용자 관리의 모든 작업은 UI에서 수행되었습니다.
이 문제를 재현해 보았지만, 아쉽게도 Discourse 운영을 처음 배운 중이라 모든 단계를 자세히 기록하지 못했습니다. 다만 users와 reviewables 테이블의 현재 기록을 보유하고 있으며, 제가 목격한 내용을 부분적으로 뒷받침합니다. 혹시 그 안에 단서가 있을 수 있으니 참고해 주시면 좋겠습니다. 또한 nginx와 rails 로그도 함께 보유하고 있습니다.
2개의 좋아요
사용자 ID에는 PG 시퀀스를 사용하며, 항상 증가합니다. 트랜잭션을 롤백하더라도 시퀀스는 계속 증가합니다.
이 제약 조건을 위반하려면 직접 DB를 조작해야 합니다(예: 사용자 테이블의 ID 시퀀스 재설정).
재현 사례가 확인될 때까지 이 이슈를 닫겠습니다. 해당 상황을 재현할 수 있다면 다시 열리도록 표시해 주세요.
1개의 좋아요