الانتقال من Yahoo! Groups

(تعديلات كبيرة أدناه—المحاولة الثانية)

أعمل على عملية استيراد الرسائل، باستخدام الإرشادات الموجودة في Migrate from another forum to Discourse. كما أفهمها، يجب أن تبدو العملية على النحو التالي:

  • إعداد بيئة التطوير باستخدام Install Discourse on Ubuntu or Debian for Development
  • تثبيت MongoDB على ذلك النظام
  • على ذلك النظام، وبصفتك المستخدم غير المميز نفسه الذي يشغّل Discourse، قم بتشغيل git clone على سكربت تصدير مجموعات ياهو
  • بنفس المستخدم، قم بتشغيل gem install mechanize ثم gem install mongo. بعد ذلك، عدّل ملف .config.yaml لتزويده ببيانات اعتماد ياهو واسم المجموعة، ثم شغّل 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 ميجابايت من البيانات. عند هذه النقطة، أخذتُ لقطة للنظام الافتراضي (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.

أكثر غرابةً وأكثر غرابةً…