(крупные правки ниже—вторая попытка)
Работаю над процессом импорта сообщений, следуя инструкциям по адресу 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 работал около часа, сообщая об успешном завершении для всех операций и сохраняя около 38 тыс. сообщений. База данных syncro присутствует и содержит около 85 МБ данных. На этом этапе я создал снимок виртуальной машины.
Однако у меня возникли проблемы со скриптом импорта. При запуске 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)
Странно, я думал, что уже установил gem 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.
Всё более и более странно…