Yahoo! Groupsからの移行

(大きな編集あり–2 回目の試み)

Migrate from another forum to Discourse の手順に従って、メッセージのインポート処理に取り組んでいます。私の理解では、手順は以下のようになるはずです:

  • Install Discourse on Ubuntu or Debian for Development を使って開発環境をセットアップする
  • そのシステムに MongoDB をインストールする
  • そのシステム上で、Discourse を実行しているのと同じ非特権ユーザーとして、yahoo-group-export スクリプトを git clone する
  • 同じユーザーで gem install mechanizegem install mongo を実行する。その後、.config.yaml を編集して Yahoo の認証情報とグループ名を指定し、ruby bin/yg-export.rb を実行する
  • お好みの飲み物を 1 杯(あるいは 2 杯)飲む
  • 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 gem をインストールしたと思っていたのですが。まあ、もう一度インストールしてみましょう:

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.

ますます不思議になってきました…