삭제된 주제는 데이터베이스에서 완전히 제거되는 것이 아니라 삭제된 상태로 표시되기 때문입니다. 특정 ID를 다른 주제에 다시 연결하려는 시도는 좋은 아이디어가 아닌 것 같습니다(물론 질문하신 내용은 아니지만요). 주제를 실제로 삭제하려면 영구 삭제 기능 소개를 참고해 보실 수 있습니다.
문제는 Topic의 external_id에 사용하는 값을 변경하기 어렵다는 점입니다(수동 작업). 통합 중인 앱(CatalogIt - 읽기 전용 API만 제공)의 제한 사항 때문입니다. 개발 과정에서 우리는 자주 수동으로 Topic을 삭제하고 자동으로 다시 생성합니다(이 통합 기능은 사용자가 “이 항목 토론하기” 링크를 클릭할 때 CatalogIt의 항목에 대해 토론 Topic을 생성하는 것뿐입니다). 이로 인해 매번 이 값을 변경해야 합니다. Topic을 삭제한 후 값을 변경하지 않고 나중에 사용자가 “이 항목 토론하기” 링크를 클릭하면 “external already taken” 오류가 발생합니다.
삭제 대신 아카이빙하는 것이 더 나은 아이디어일 수도 있고, 또는 활용할 수 있는 숨기기/보이기 메커니즘이 있을 수도 있습니다. 저는 Discourse에 익숙하지 않아 조사가 필요합니다. 직접 살펴보고 찾아보겠습니다.