Migrate a vBulletin 4 forum to Discourse

24년 된 vBulletin 3을 실행 중이던 vBulletin 포럼을 이식하기 시작했을 때 이는 사실이 아니었습니다. 해당 스크립트에는 여러 호환성 문제와 기타 문제가 있었습니다. 그러나 vB4용 스크립트를 기반으로 vBulletin 3용 가져오기(importer)를 만드는 데 많은 노력을 기울였습니다.

개선된 스크립트는 Discourse에 포함되어 있으며, 이름은 vbulletin3.rb입니다. vB3 가져오기 스크립트의 사용법은 이 안내문에서 설명된 것과 동일합니다. 대신 bundle exec ruby script/import_scripts/vbulletin3.rb를 실행하면 됩니다.

vBulletin3 스크립트에는 다음과 같은 상당한 변경 사항/개선 사항이 있습니다:

  1. 포럼 권한이 복사됩니다.
  2. 포럼 모더레이터 그룹이 생성됩니다.
  3. 가입 가능한 사용자 그룹이 적절한 구성으로 생성됩니다.
  4. 포럼 중첩이 Discourse의 최대치인 3단계까지 가져오기됩니다.
  5. 모든 스레드와 게시물의 영구 링크(Permalinks)가 등록되어 링크 부패(link rot)를 방지합니다.
  6. 일부 기본 포럼 설정이 복사됩니다(예: 제목, 알림 이메일, 회사 이름).
  7. 투표(Polls)가 가져오기됩니다.
  8. bbcode → markdown 변환에 대한 주요 개선 사항이 적용됩니다.
  9. 스레드, 게시물, 첨부 파일로의 URL 심링크가 Discourse 참조로 변환됩니다. 이를 위해서는 환경 변수 FORUM_URLforum.hostname/path(프로토콜 제외)로 설정해야 합니다.

vBulletin의 개인 메시지(Private Messages)를 Discourse의 개인 메시지로 변환하는 대신, 사용자는 이전에 보낸 개인 메시지의 아카이브를 포함한 시스템 개인 메시지를 받게 됩니다. vBulletin의 개인 메시지 구조는 Discourse와 실제로 호환되지 않습니다. 이를 변환하려고 하면 vBulletin에서 개인 메시지가 어떻게 사용되었는지에 따라 일부 프라이버시가 노출될 수도 있습니다.

다른 가져오기 스크립트와 마찬가지로, 변환에 상당한 시간이 소요될 수 있습니다. 제 워크스테이션에서는 7,000명의 사용자, 16,000개의 스레드, 415,000개의 게시물에 대해 변환 스크립트가 5.5시간이 소요되었습니다. 후처리(post processing)에 얼마나 시간이 걸렸는지는 알 수 없으며, 이를 밤새도록 실행하도록 두었습니다. 시작부터 끝까지 포럼은 30시간 동안 중단되었습니다. 결국 결과에 대해 만족합니다.

2개의 좋아요