أخطاء استيراد مجموعات Yahoo

أعمل على استيراد Yahoo Groups mbox وأواجه بعض الأخطاء. لست متأكدًا من الاتجاه الذي يجب اتباعه في هذه المرحلة فيما يتعلق بالتنقيح والاستيراد. إليك الأخطاء التي أراها حتى الآن:
https://pastebin.com/raw/2WTN3GTj

هل تستخدم سكريبت mbox؟ لقد عمل معي بشكل جيد وبدون أخطاء. المرفقات مفقودة، لكن هذا ليس نهاية العالم في حالتي.

هذا صحيح @tobiaseigen. استمرّت عملية الاستيراد لأكثر من ساعتين.

بالإضافة إلى السؤال الأخير، أردتُ أن أضيف أنني لم أكن متأكدًا مما إذا كان ينبغي لي المضي قدمًا في استيراد هذا حتى مع وجود هذه الإخفاقات… أتساءل ما إذا كان بإمكاننا بعد إصلاح الأخطاء/الإخفاقات استيرادها مرةً أخرى ببساطة، وسيتخطى الرسائل التي تم استيرادها بالفعل ويستمر في عملية الاستيراد الصحيحة.

@gerhard ربما نحتاج إلى مدخلات ومساعدة هنا… حتى بعد مراجعة دليلك، لا يظهر Sidekiq معالجة هذه الرسائل التي تبلغ حوالي 35,000 رسالة.

لست متأكدًا من أن Sidekiq ذو صلة هنا - أعتقد أن سكريبت الاستيراد يعمل خارج Discourse.

في حال كان ذلك مفيدًا، إليك سجل الاستيراد الخاص بي. في الواقع، هناك بضع أسطر تشبه ما عندك، لكنني قررت ببساطة عدم القلق بشأنها. الحياة قصيرة جدًا.

بما أن لديك أخطاء كثيرة، يبدو أن لديك مشكلة منهجية أكثر. هل أنت متأكد من أن النظام لديه ذاكرة وصول عشوائي (RAM) كافية متاحة؟ لا أعرف ما إذا كنت قد جربت ذلك بالفعل، لكن قد ترغب في النظر إلى ملف الاستيراد عن كثب قليلاً ومحاولة تحديد ما إذا كان هناك أي شيء يمكنك اكتشافه هناك - ربما تحتاج فقط إلى تعديل split_regex بطريقة ما، أو رفع الملف إلى خادمك بتنسيق مختلف؟

إذا استمرت مشاكلك، يمكنك طلب المساعدة في Marketplace - هناك بعض الاستشاريين المتواجدين هنا ولديهم خبرة كبيرة في عمليات الاستيراد. أنا بالتأكيد لست خبيرًا - كانت هذه محاولتي الأولى. :wink:

root@discourse:/var/discourse# ./launcher enter import
root@discourse-import:/var/www/discourse# RAILS_DB=secondsite
root@discourse-import:/var/www/discourse# export RAILS_DB
root@discourse-import:/var/www/discourse# import_mbox.sh
بدء استيراد mbox...

تحميل المجموعات الموجودة...
تحميل المستخدمين الموجودين...
تحميل الفئات الموجودة...
تحميل المنشورات الموجودة...
تحميل المواضيع الموجودة...

إنشاء الفهرس
فهرسة الملفات في /shared/import/data/list
فهرسة /shared/import/data/list/18929486-3.mbox
فهرسة /shared/import/data/list/18929486-2.mbox

فهرسة الردود والمستخدمين

إنشاء الفئات
        1 / 1 (100.0%)  [4916421 عنصر/دقيقة]  
إنشاء المستخدمين
       69 / 69 (100.0%)  [1178 عنصر/دقيقة]  ]  
إنشاء المواضيع والمنشورات
التاريخ مفقود. تخطي 0462b41b966d8c11e6e32cc14c0b576d
        1 / 2333 (  0.0%)  [179689 عنصر/دقيقة]  التاريخ مفقود. تخطي 0adb9bd80082595a33130f7749d7f530
        2 / 2333 (  0.1%)  [224693 عنصر/دقيقة]  التاريخ مفقود. تخطي 3bd86d7adb396fbeb7d6dfcfe9f0be5f
        3 / 2333 (  0.1%)  [283328 عنصر/دقيقة]  التاريخ مفقود. تخطي 4f5397838e6c7f96eedfe116ce27be13
        4 / 2333 (  0.2%)  [184374 عنصر/دقيقة]  التاريخ مفقود. تخطي c8c14ab80e92ae1cacd4af99351319bd
       45 / 2333 (  1.9%)  [334 عنصر/دقيقة]  فشل تعيين المنشور لـ 2f401ce90708241252h30bdae5iad2ae0096e067b71@mail.gmail.com
دالة غير معرفة `hex` لـ nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:145:in `map_first_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:103:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
      940 / 2333 ( 40.3%)  [398 عنصر/دقيقة]  فشل تعيين المنشور لـ BBCAF42471FF9540868B4DC02B885B1BBCDA1F@wn1217.or.providence.org
دالة غير معرفة `hex` لـ nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:159:in `map_reply'
/var/www/discourse/script/import_scripts/mbox/importer.rb:105:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
      944 / 2333 ( 40.5%)  [399 عنصر/دقيقة]  فشل تعيين المنشور لـ 3A1D6C799D451B41BD0500303339622A023AA1@s-mail.integral-corp.com
دالة غير معرفة `hex` لـ nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:159:in `map_reply'
/var/www/discourse/script/import_scripts/mbox/importer.rb:105:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
     1149 / 2333 ( 49.2%)  [408 عنصر/دقيقة]  فشل تعيين المنشور لـ FF35EE5B30156244A4370DC859B7F650F50626@s-mail.integral-corp.com
دالة غير معرفة `hex` لـ nil:NilClass
/var/www/discourse/app/models/upload.rb:132:in `base62_sha1'
/var/www/discourse/app/models/upload.rb:386:in `short_url_basename'
/var/www/discourse/app/models/upload.rb:115:in `short_url'
/var/www/discourse/lib/upload_markdown.rb:17:in `image_markdown'
/var/www/discourse/lib/upload_markdown.rb:10:in `to_markdown'
/var/www/discourse/lib/email/receiver.rb:1085:in `block in add_attachments'
/var/www/discourse/lib/email/receiver.rb:1060:in `each'
/var/www/discourse/lib/email/receiver.rb:1060:in `add_attachments'
/var/www/discourse/script/import_scripts/mbox/importer.rb:137:in `format_raw'
/var/www/discourse/script/import_scripts/mbox/importer.rb:121:in `map_post'
/var/www/discourse/script/import_scripts/mbox/importer.rb:159:in `map_reply'
/var/www/discourse/script/import_scripts/mbox/importer.rb:105:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/var/www/discourse/script/import_scripts/base.rb:490:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:97:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:83:in `batches'
/var/www/discourse/script/import_scripts/mbox/importer.rb:91:in `import_posts'
/var/www/discourse/script/import_scripts/mbox/importer.rb:35:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
script/import_scripts/mbox.rb:16:in `<module:Mbox>'
script/import_scripts/mbox.rb:10:in `<module:ImportScripts>'
script/import_scripts/mbox.rb:9:in `<main>'
     2328 / 2333 ( 99.8%)  [467 عنصر/دقيقة]  

تحديث حالة الموضوع

تحديث bumped_at في المواضيع

تحديث last posted at في المستخدمين

تحديث last seen at في المستخدمين

تحديث عدد ردود الموضوع...
       70 / 70 (100.0%)  [10745 عنصر/دقيقة]    
تحديث first_post_created_at...

تحديث عدد منشورات المستخدم...

تحديث عدد مواضيع المستخدم...

تحديث مستخدمو الموضوع

تحديث توقيتات المنشورات

تحديث مستخدمو الموضوع المميز

تحديث المواضيع المميزة في الفئات
        9 / 9 (100.0%)  [2505 عنصر/دقيقة]  n]  
تحديث عدد ردود مواضيع المستخدم
       70 / 70 (100.0%)  [9174 عنصر/دقيقة]   ]  
إعادة تعيين عدادات الموضوع


انتهى (00س 06د 58ث)

لذلك قمتُ بالمضي قدمًا والسماح لهذا بالإتمام (سأبحث في الأخطاء لاحقًا)، لكنني واجهتُ الآن غرابةً كبيرةً جدًا. لقد حاولتُ استيراد هذه الملفات إلى مجلد يُدعى “old-yahoo-group” عن طريق إنشاء فئة (CATEGORY) داخل النظام أولاً، ثم نقلتُ جميع مجلدات mbox إلى المجلد التالي:

/var/discourse/shared/standalone/import/data/old-yahoo-group

ظننتُ أنني فهمتُ التعليمات بحيث تظهر هذه الرسائل، بعد الاستيراد، في الفئة المناسبة، غير أنها جميعًا مخفية داخل النظام.

يمكنني إجراء بحث وإيجاد الرسائل القديمة دون أي مشكلة، لكنها لا تظهر في أي موقع مجمع.

كيف يمكنني التلاعب بهذا الاستيراد الأخير ليُوجَّه إلى فئة محددة بحيث تظهر جميع الرسائل البالغ عددها حوالي 35 ألف رسالة في قسم مناسب يشير إلى أنها رسائل قديمة؟

عند البحث أكثر، بدا لي أنني وجدتُ ما حدث:

والآن أحتاج إلى معرفة كيفية التعافي من هذا…

إذًا هذا عمل بشكل مثالي (حيث كان old-yahoo-group قد تم إنشاؤه مسبقًا ولم تكن توجد أي منشورات غير مصنفة أخرى (وقد تم تعطيله فعليًا في الإعدادات)):

/var/discourse/launcher enter app
rails c
un=Category.find_by_slug('uncategorized')
newcat=Category.find_by_slug('old-yahoo-group')
Topic.where(category_id: un.id).update_all(category_id: newcat.id)

بالمناسبة، مررت بتجربة مماثلة. لسبب ما، تجاهل سكريبت الاستيراد الفئة الموجودة التي أنشأتها رغم أن السلاجل (slug) كان متطابقًا. لكنه أنشأ لي فئة جديدة، لذا لم أواجه أي مشكلة. لقد قمت فقط بحذف الفئة التي أنشأتها وإعادة تسمية الفئة التي أنشأها السكريبت.