لقد نجحت في ترحيل قاعدة بيانات Xenforo التي تحتوي على 1500 عضو وحوالي 75,000 منشور إلى خادم جديد يعمل بنظام Discourse.
لدي سؤال بخصوص المرفقات… من خلال السكربت، أرى أنه إذا كانت مجلد المرفقات موجودًا، فسيقوم السكربت باستيرادها. سؤالي هو: أين يجب أن أضع المرفقات من الخادم القديم؟
أ) في جزء Docker من الخادم (في مكان ما)
ب) في الموقع الأصلي /var/discourse/shared/standalone/tmp/attachments
ضع الملفات في أي مكان تريده يكون متاحًا من الجهاز الذي يقوم بالاستيراد، ثم ضع المسار هنا:
ATTACHMENT_DIR = '/tmp/attachments'
إذا كنت تعمل داخل حاوية Docker، وقمت بوضع الملفات تحت var/discourse/shared/standalone/tmp/attachments، فاستخدم /shared/tmp/attachments كمسار. يمكنك التحقق من ذلك بالبحث عن الملفات أثناء وجودك داخل الحاوية.
لقد عثرت عليه… المشكلة هي أن المجلد الذي يحتوي على المرفقات للاستيراد يجب أن يكون داخل تطبيق Docker في المسار /var/www/discourse/…/tmp/attachments
الآن الأمور على ما يرام، يستمر السكربت وسيستغرق حوالي 1.5 ساعة لإكماله
تعديل: يبدو أن استيراد المرفقات لا يعمل مرة أخرى… أنا حاليًا عند 78% من عملية الاستيراد، وفي كل منشور كان يحتوي على صورة أو مرفقات، يظهر [ATTACH]9788[/ATTACH]، حيث يتزايد الرقم بين الوسوم مع كل مرفق تم رفعه، بحيث يكون التالي [ATTACH]9789[/ATTACH]…
هل أحتاج إلى ترتيب المرفقات من Xenforo بترتيب معين، أم يكفي فقط نسخ/لصق الهيكل ومجلد /tmp/attachments؟
أقوم الآن بالتثبيت على آلة افتراضية جديدة مع لقطة شاشة حتى أتمكن من تغيير التفاصيل بسرعة والبدء من جديد مع عملية الهجرة.
أمس، وضعت مجلد المرفقات من Xenforo الذي يحتوي على هيكل كالتالي: مجلد رئيسي باسم attachments وبداخله 9 مجلدات فرعية بأسماء من 0 إلى 9، وبداخل كل منها حوالي 600-700 مرفق (.jpg). قمت بوضع المجلد في var/discourse/shared/standalone/tmp/attachments وقمت بتعديل سكريبت xenforo.rb وأضفت الكود التالي:
ATTACHMENT_DIR = '/shared/tmp/attachments'
اختبرت الأمر باستخدام “ls /tmp/attachments” وحصلت على الهيكل الصحيح، لكنني واجهت نفس الخطأ كما في المرة الأولى:
إنشاء المواضيع والمنشورات
74 / 74752 ( 0.1%) [99817 عنصر/دقيقة] تتبع الأثر (آخر استدعاء):
18: من script/import_scripts/xenforo.rb:396:in <main>' 17: من /var/www/discourse/script/import_scripts/base.rb:47:in perform’
16: من script/import_scripts/xenforo.rb:32:in execute' 15: من script/import_scripts/xenforo.rb:174:in import_posts’
14: من /var/www/discourse/script/import_scripts/base.rb:869:in batches' 13: من /var/www/discourse/script/import_scripts/base.rb:869:in loop’
12: من /var/www/discourse/script/import_scripts/base.rb:870:in block in batches' 11: من script/import_scripts/xenforo.rb:180:in block in import_posts’
10: من /var/www/discourse/script/import_scripts/base.rb:490:in create_posts' 9: من /var/www/discourse/script/import_scripts/base.rb:490:in each’
8: من /var/www/discourse/script/import_scripts/base.rb:491:in block in create_posts' 7: من script/import_scripts/xenforo.rb:186:in block (2 levels) in import_posts’
6: من script/import_scripts/xenforo.rb:315:in process_xenforo_post' 5: من script/import_scripts/xenforo.rb:324:in process_xf_attachments’
4: من /usr/local/lib/ruby/2.6.0/set.rb:338:in each' 3: من /usr/local/lib/ruby/2.6.0/set.rb:338:in each_key’
2: من script/import_scripts/xenforo.rb:326:in block in process_xf_attachments' 1: من /usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb:22:in squish!’
/usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb:22:in gsub!': لا يمكن تعديل السلسلة المجمدة (FrozenError) root@my-app:/var/www/discourse#نص منسّق`