(아래에 주요 수정 사항 있음 — 두 번째 시도)
메시지 가져오기 과정을 작업 중이며, Migrate from another forum to Discourse 에 있는 지침을 따르고 있습니다. 제 이해로는 이 과정은 다음과 같이 보일 것입니다:
- Install Discourse on Ubuntu or Debian for Development 를 사용하여 개발 환경을 설정합니다.
- 해당 시스템에 MongoDB를 설치합니다.
- 해당 시스템에서, Discourse를 실행하는 것과 동일한 비특권 사용자로
git clone하여 yahoo-group-export 스크립트를 가져옵니다. - 동일한 사용자로
gem install mechanize;gem install mongo를 실행합니다. 그런 다음 .config.yaml을 편집하여 Yahoo 자격 증명과 그룹 이름을 입력하고ruby bin/yg-export.rb를 실행합니다. - 좋아하는 음료를 한 잔(또는 두 잔) 마십니다.
- yg-export가 완료되면, Discourse 디렉터리에서
script/import_scripts/yahoogroup.rb를 확인합니다. 올바른 MONGODB_HOST(localhost)를 가리키도록 편집합니다. - discourse 디렉터리에서
bundle exec ruby script/import_scripts/yahoogroup.rb를 실행합니다. - 올바르게 가져와졌는지 확인합니다.
- 백업과 복원을 통해 라이브 서버에 적용합니다.
2~4단계는 추론에 의한 것입니다. 하지만 이것이 따를 올바른 단계처럼 보이나요? 그렇다고 믿고 진행했습니다. 4단계까지는 잘 실행되었습니다 — yg-export.rb는 약 1시간 동안 실행되어 모든 항목에 대해 SUCCESS를 보고하고 약 38k개의 메시지를 저장했습니다. syncro 데이터베이스에는 약 85MB의 데이터가 존재합니다. 그 시점에서 VM 스냅샷을 촬영했습니다.
하지만 가져오기 스크립트에서 문제가 발생하고 있습니다. bundle exec ruby script/import_scripts/yahoogroup.rb를 실행하면 다음과 같은 오류가 나옵니다:
dan@ubuntu:~/discourse$ bundle exec ruby script/import_scripts/yahoogroup.rb
Traceback (most recent call last):
script/import_scripts/yahoogroup.rb: Bootsnap::LoadPathCache::FallbackScan
7: from script/import_scripts/yahoogroup.rb:4:in `<main>'
6: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/kernel.rb:23:in `require'
5: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:26:in `require'
4: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:40:in `rescue in require'
3: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
2: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register'
1: from /home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/home/dan/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require': cannot load such file -- mongo (LoadError)
이상하네요. mongo 제보를 이미 설치했다고 생각했거든요. 뭐, 다시 설치해 보겠습니다:
dan@ubuntu:~/discourse$ gem install mongo
Successfully installed mongo-2.10.2
Parsing documentation for mongo-2.10.2
Done installing documentation for mongo after 4 seconds
1 gem installed
다시 가져오기 스크립트를 실행했는데, 결과는 동일합니다. 시스템 수준에서 설치하는 것이 영향을 미칠까요?
dan@ubuntu:~/discourse$ sudo apt install ruby-mongo
[sudo] password for dan:
Reading package lists... Done
Building dependency tree
Reading state information... Done
ruby-mongo is already the newest version (2.5.1-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
더욱 더 이상해지네요…