토픽 삭제 후 `external_id` 재사용

우리는 우리 통합에서 토픽 자동 생성을 위해 external_id 기능을 사용하고 있습니다. 하지만 토픽을 삭제한 후 동일한 external_id를 사용하여 새로운 토픽을 생성하려고 하면 다음 오류가 발생합니다:

{'action': 'create_post', 'errors': ['External has already been taken']}

사용된 토픽이 삭제된 후 동일한 external_id를 재사용할 수 있는 방법이 있을까요?

사용자(User) 객체의 커스텀 필드를 사용하여 문제를 우회하는 방법이 다른 곳에서 논의된 것을 알고 있습니다. 하지만 토픽(Topic) 객체는 커스텀 필드를 지원하지 않는 것으로 보입니다. 이 문제를 해결할 수 있는 방법이 있을까요?

삭제된 주제는 데이터베이스에서 완전히 제거되는 것이 아니라 삭제된 상태로 표시되기 때문입니다. 특정 ID를 다른 주제에 다시 연결하려는 시도는 좋은 아이디어가 아닌 것 같습니다(물론 질문하신 내용은 아니지만요). 주제를 실제로 삭제하려면 영구 삭제 기능 소개를 참고해 보실 수 있습니다.

안녕하세요 @pfaffman
제안해 주셔서, 그리고 external_id 재사용에 대해 더 깊이 생각해 볼 수 있도록 자극해 주셔서 정말 감사합니다.

그 정수들이 정말로 비싼 경우가 아니라면요? :thinking:

(조롱하는 것처럼 보이지 않고 도움이 된 것 같아 다행이에요!) 좋은 해결책을 찾으시길 바랍니다.

문제는 Topic의 external_id에 사용하는 값을 변경하기 어렵다는 점입니다(수동 작업). 통합 중인 앱(CatalogIt - 읽기 전용 API만 제공)의 제한 사항 때문입니다. 개발 과정에서 우리는 자주 수동으로 Topic을 삭제하고 자동으로 다시 생성합니다(이 통합 기능은 사용자가 “이 항목 토론하기” 링크를 클릭할 때 CatalogIt의 항목에 대해 토론 Topic을 생성하는 것뿐입니다). 이로 인해 매번 이 값을 변경해야 합니다. Topic을 삭제한 후 값을 변경하지 않고 나중에 사용자가 “이 항목 토론하기” 링크를 클릭하면 “external already taken” 오류가 발생합니다.

삭제 대신 아카이빙하는 것이 더 나은 아이디어일 수도 있고, 또는 활용할 수 있는 숨기기/보이기 메커니즘이 있을 수도 있습니다. 저는 Discourse에 익숙하지 않아 조사가 필요합니다. 직접 살펴보고 찾아보겠습니다.