환경: 저는 Discourse 포럼과 웹사이트를 보유하고 있습니다. 웹사이트에는 여러 페이지가 있으며, 이 페이지들은 댓글을 위해 내장된 Discourse 토픽을 사용합니다.
마이그레이션 과정의 일환으로, 현재 저는 '웹페이지 URL’과 'Discourse 토픽 ID’를 매핑하는 하드코딩된 방식을 사용하고 있으며, 웹페이지에서 서버 측 코드를 통해 적절한 Discourse 토픽을 내장(embed)하고 있습니다.
이전 댓글들을 Discourse 토픽으로 마이그레이션했기 때문에, 기존 웹페이지에서는 이 방식이 잘 작동하고 있습니다.
새로운 웹페이지의 경우, a) 새로운 토픽을 생성하고 b) 웹페이지와 토픽 간의 새로운 매핑을 계속 추적하는 것은 과부하가 될 것입니다. 따라서 저는 웹페이지에서 기존 토픽 ID를 명시하지 않고, Discourse 자체의 로직을 사용하여 필요할 때(on-demand) 토픽을 생성하는 방식으로 전환하고 싶습니다.
내장된 댓글 스레드에 대한 요청이 들어올 때 어떤 토픽을 제공해야 하는지 알기 위해 Discourse에 자체 매핑 테이블이 있다고 가정하고 있습니다.
실제로 그런가요? 그리고 기존 매핑을 해당 테이블에 수동으로 삽입한 후, 웹페이지를 그 기능 사용으로 전환할 수 있을까요?
저장된 topicId가 있으면 이를 사용하고, 그렇지 않으면 페이지의 discourseEmbedUrl을 사용하는 간단한 if 스위치를 웹사이트에 추가했습니다.
불행히도 일부 페이지에 잘못된 URL을 사용했는데, 이로 인해 페이지와 스레드 사이에 잘못된 스레드 참조가 발생했습니다. topic_embeds 테이블을 찾았는데, 이것이 원인이 맞는 것 같습니다. 이 테이블에서 안전하게 삭제한 뒤 페이지를 다시 방문하여 스레드를 재생성할 수 있을까요? 아니면 다른 곳에 있는 관련 행들도 정리해야 하나요?