Discourse와 SMF 통합

안녕하세요!

다음과 같은 질문이 있습니다.
2017년부터 SMF 포럼을 운영해 왔으며, 현재 약 4,000개의 게시물이 있습니다.
지난해에는 약 1,000개의 게시물이 있는 Discourse 포럼을 병행으로 운영했지만, 2021년 12월에 SMF로 돌아왔기 때문에 현재는 오프라인 상태입니다.
솔직히 더 이상 SMF를 좋아하지 않아 Discourse로 이식을 하고 싶지만, Discourse 포럼에 있는 1,000개의 게시물도 함께 가져오고 싶습니다.
Discourse 포럼은 백업이 있으며, SMF에서 백업을 만드는 것은 문제없습니다.

SMF를 Discourse로 이식하는 것은 문제가 되지 않을 것으로 생각되지만, 아직 시도해 본 적은 없습니다.
솔직히 두 포럼의 카테고리가 비슷하지만 차이점이 있습니다.

두 포럼을 하나로 병합할 수 있을까요?
가능하다면, 가장 좋은 방법은 무엇일까요?

SMF에서는 두 포럼 모두에 있는(대략적으로 동일한) 사용자들과 게시물만 필요합니다. 원칙적으로 SMF 포럼의 모든 게시물을 별도의 카테고리로 가져온 후, 제가 직접 올바른 카테고리로 이동시키거나(또는 아카이브처럼 그대로 두거나) 할 수 있습니다.

제 계획은 다음과 같습니다:

  1. 현재 SMF의 백업을 만들어 2차 SMF에 가져온 후, 모든 주제와 게시물을 단일 카테고리로 이동시키고, Discourse로 가져오기 위해 다시 백업을 만듭니다.
  2. “구” Discourse 포럼을 다시 온라인으로 전환합니다. (1,000개 게시물을 포함하거나 제외하거나?)
  3. SMF에서 가져온 백업을 가져옵니다.

여기서 이것이 실제로 작동하는지 여부에 대해 질문이 있습니다. SMF의 주제와 게시물에는 ID와 타임스탬프가 있으며, 이들은 사용자 등과 연결되어 있기 때문입니다.

솔직히 어떻게 진행해야 하는지, 그리고 이것이 가능한지조차 알지 못합니다.
해당 스크립트가 SMF 2.1.x에 맞게 이미 수정되었나요?

어떤 도움도 감사하겠습니다!

SMF에서 Discourse로의 네이티브 백업이 지원되는지 확신하지 못하겠습니다. 공식 Discourse 팀이 마이그레이션을 도와줄 수 있다는 것은 알고 있지만, 비용은 모릅니다. 과거에는 Discourse API를 사용하여 대량의 포럼 데이터를 마이그레이션한 경험이 있습니다. Discourse 포럼에 카테고리를 먼저 생성한 후, Python 스크립트를 작성하여 기존 포럼에서 데이터를 크롤링하고 새 포럼에 주제, 사용자 등을 입력하는 방식으로 진행했습니다.

문서에는 SMF에서 Discourse로 마이그레이션하는 방법에 대한 안내가 있습니다.

https://meta.discourse.org/docs?topic=90314

SMF에서 데이터를 스크래핑하여 Discourse에 가져오는 스크립트가 있으면 좋겠는데, 그런 것을 프로그래밍할 수 있다면요. :wink:

아, 그렇군요. SMF2에서 마이그레이션하는 방법에 대한 공식 문서가 있다는 걸 몰랐어요. 질문자님의 포럼은 SMF2인가요, 아니면 SMF1인가요?

네, 아니요, 이건 SMF 2.1.x이고 SMF는 2.0.x에서 2.1.x로 넘어오면서 많은 부분이 변경되었어요.

그래도 여전히 두 포럼을 병합하는 문제가 남아 있습니다.

네, 그 정보 감사합니다 :slight_smile:
마이그레이션 가이드의 어떤 단계에서 문제가 발생하고 있나요?

참고: Merge two Discourse sites into one

마이그레이션을 직접 해본 적은 없지만, 제 접근 방식은 다음과 같습니다:

  • SMF 데이터를 새 인스턴스로 마이그레이션
  • 위의 가이드를 사용하여 두 Discourse 인스턴스를 병합

글쎄, 우리 모두에게 해머는 있지만, 디스코르스 사이트 병합 스크립트에는 상당수의 엣지 케이스가 누락되어 있다는 것을 발견했습니다(지금 정확히 어떤 것들이었는지 기억이 나지 않습니다). 그리고 두 가지 전환 작업을 수행해야 합니다.

아마도 기존 디스코르스 사이트 위에 SMF 스크립트를 실행하는 것이 가장 나을 것입니다. 그렇게 해본 적이 있는데, 카테고리 병합이나 사이트 간 사용자 정렬 같은 작업을 위해 스크립트를 조정했습니다. 프로그래밍에 조금만 익숙하다면, 루비를 몰라도 스크립트는 대체로 이해하기 쉽습니다.

아직 시작하지 않았습니다.
하지만 제 질문은 1. 이 스크립트가 SMF 2.1과 호환되는지, 그리고 2. 기존 Discourse 인스턴스에 SMF를 병합할 수 있는지 여부였습니다.

그 부분을 완전히 놓치고 있었습니다. 답변 감사합니다. 이렇게 진행하는 것이 맞을 것 같습니다.

@pfaffman
SMF의 모든 것이 필요한 것은 아니고, 게시물, 주제, 사용자 정보만 필요합니다.

작동하게 하려면 조금 더 다듬어야 할 수도 있겠네요.

사실 가져오기(Import) 대상은 거의 그것들입니다. 카테고리를 가져오지 않는 것보다 가져오는 쪽이 훨씬 쉽습니다.

네. 시도해 보기 전까지는 얼마나 많은 작업이 필요할지 알 수 있는 방법이 없습니다.

다음 단계들을 진행할 것 같습니다:

  1. 기존 SMF에서 모든 주제(게시물 포함)를 하나의 카테고리로 이동한 뒤, 데이터베이스 백업을 생성합니다.
  2. 새 Discourse를 설치하고 SMF 백업을 가져옵니다. (SMF 2.1과 호환되는지 확인이 필요합니다.)
  3. Discourse를 삭제하고 재설치한 뒤, 설정과 게시물이 포함된 Discourse 백업을 업로드합니다.
  4. @supermathie가 공유한 가이드에 따라 두 Discourse 포럼을 하나로 통합합니다.

이렇게 하면 잘 될 것 같지만, 안 되면 대신 해줄 수 있는 사람에게 비용을 지불해야 할 것 같습니다.