ترحيل منتدى phpBB3 إلى Discourse

مرحباً،

لقد قمت باستيراد منتدى phpBB الخاص بي (الإصدار 3.2.10) دون أي مشكلة (شكراً لك @gerhard والآخرين)…

حسناً، تقريباً دون أي مشكلة :wink: : لا توجد ردود في المواضيع.

هل لديكم أي أفكار؟

شكراً مقدماً

إعجاب واحد (1)

مرحبًا @jmbeuken، قم بتشغيل أمر import_phpbb3.sh عدة مرات، ثم تفقّد ما إذا كانت مهمة Sidekiq قد اكتملت في http://yoursite/sidekiq.

3 إعجابات

شكرًا لك: إنه يعمل!

إعجابَين (2)

أدركت الآن أن التعابير النمطية (regex) تعمل فقط لعناوين URL الخاصة بالمنتدى.

بعد التحويل، وجدت هذه الإعدادات المسبقة:

/(viewforum.php\?)(?:.*&)?(f=\d+).*/\1\2 تعمل بشكل مثالي، لكن /(viewtopic.php\?)(?:.*&)?(t=\d+).*/\1\2 تعيد دائمًا خطأ 404 لأن العنوان لم يتم تحويله ويظل على حاله https://www.mysite.com/viewtopic.php?t=123.

لماذا؟ التعابير النمطية تبدو متشابهة، وقد جربتها من خلال روابط خارجية.

تحديث! ( :grimacing:)

إعجابَين (2)

يبدو أن المشكلة ليست في تعبير النمط العادي (regex) لتطبيع الروابط الدائمة، حيث أنه يقوم بالتحديد بشكل صحيح. هل لديك روابط دائمة تتبع الصيغة viewtopic.php?t=123 تحت الإدارة → تخصيص → الروابط الدائمة؟

إعجابَين (2)

مرحبًا جاستن، لا، لدي فقط ما تراه في الصورة.

شكرًا لك

إعجاب واحد (1)

مرحبًا، فقط أتوقف هنا لأشكرك على هذه النصيحة. أنا أقوم بنقل منتدى PHPBB 3.2 كبير نسبيًا إلى Discourse، بحجم حوالي 1.3 جيجابايت في ملف تصدير SQL، وقد ظننت أنني سأعجز عن تجاوز العقبة الأولى!

بإعادة تعريف new_categories كقائمة فارغة و category_mappings ككائن فارغ، ما هو الفعل الفعلي الذي يتم؟ هل ستكون هناك عواقب سلبية؟

إعجاب واحد (1)

تكون هذه الإعدادات سارية فقط عند الاستيراد إلى منتدى Discourse يحتوي على هيكل فئات موجود.

إعجاب واحد (1)

مرحبًا،

لقد استوردت موقع phpBB3 يحتوي على 2518 مستخدمًا.
بعد تشغيل “import_phpbb3.sh” عدة مرات، يبدو أن كل شيء مستقر…
ولكنني لاحظت وجود 1108 مستخدمين من “المستوى 0” و1410 مستخدمين من “المستوى 1”: ما هو المعيار المستخدم لفصل المستخدمين؟
ثم، في اليوم التالي، لاحظت أن عدد مستخدمي “المستوى 0” أصبح 258 فقط: كيف تم “التنظيف”؟ هل كان بسبب عدم وجود منشورات؟ أم عدم وجود نشاط؟

حاولت نقل كلمات المرور: للأسف، حدثت العديد من الأخطاء (مثل تطابق اسم المستخدم مع كلمة المرور، أو طول كلمة المرور أقل من 9 أحرف، وما إلى ذلك)، مما أدى إلى توقف البرنامج النصي في كل مرة. قمت بتصحيح الأخطاء يدويًا على phpBB3 (بحذف المستخدمين، طبعًا) ثم أعيد تشغيل البرنامج، لكن هذه العملية مرهقة جدًا لذا توقفت. :roll_eyes:
هل توجد طريقة، في حال حدوث خطأ، لتعيين كلمة مرور افتراضية؟ (أنا لا أعرف لغة Ruby :pensive: )

شكرًا مسبقًا.

إعجاب واحد (1)

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

إعجابَين (2)

شكرًا لك @pfaffman
عذرًا، لم أكن واضحًا بما يكفي…
في نسخة phpBB3، كان الحد الأدنى للطول 6 أحرف، ثم قمت بتغييره إلى 8 أحرف عند تحديث phpBB3 قبل بضع سنوات…
لذا، من الممكن أن يكون هناك العديد من كلمات المرور التي طولها أقل من 10 (الافتراضي في discourse).

أعتقد أننا نستطيع تعديل ملف “spec/components/validators/password_validator_spec.rb”، لكنني أواجه صعوبة في الفهم… :anguished:

أهلاً وسهلاً.

إعجاب واحد (1)

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

لكن ربما يكون لدى شخص آخر فكرة أخرى.

إعجاب واحد (1)

مرحباً،

أثناء عملية الاستيراد، توجد مشكلة في رفع الملفات:

4497 / 12442 ( 36.1%)  [1122 عنصر/دقيقة]  
فشل إنشاء عملية الرفع: لا يوجد ملف أو دليل @ rb_sysopen - /shared/standalone/import/data/files/89_d634760ee03ba0148d7a387a19794f90
فشل رفع /shared/standalone/import/data/files/89_d634760ee03ba0148d7a387a19794f90

لكن الملف موجود:

root@gui2:/var/discourse/shared/standalone/import# ll data/files/89_d634760ee03ba0148d7a387a19794f90
-rw-rw-rw- 1 nwz003 48 125552 Mar  6  2012 data/files/89_d634760ee03ba0148d7a387a19794f90

وفي ملف “shared/standalone/import/settings.yml”:

phpbb_base_dir: /shared/standalone/import/data

هل لديك أي فكرة عن السبب؟

شكراً لك

إعجاب واحد (1)

جرب تنفيذ /shared/import/data في الإعدادات — داخل الحاوية، يتم ربط مجلد /var/discourse/shared/standalone بـ /shared

3 إعجابات

شكرًا لك @justin : هذه هي الحيلة :slight_smile:

4 إعجابات

واجهت هذه المشكلة أثناء تشغيل import_phpbb3.sh على نسخة احتياطية لقاعدة بيانات phpBB 3.0.12 للتو:

creating user groups
Failed to add user 1 to group 11
PG::NotNullViolation: ERROR:  null value in column "user_id" of relation "group_users" violates not-null constraint

اتضح أن قاعدة بيانات phpbb الخاصة بي تحتوي على مستخدمين بوضع “قيد الانتظار” في جدول phpbb_user_group. (المستخدمون قيد الانتظار هم أولئك الذين طلبوا الانضمام إلى مجموعة لكن لم تتم الموافقة عليهم بعد.) قمت بحذف الصفوف حيث كان user_pending يساوي 1، وتمكّن المستورد من الاستمرار بعد ذلك.

إعجاب واحد (1)

ملاحظة أخرى عند استيراد phpBB 3.0.12: أرى عددًا هائلاً من الرسائل مثل هذه عند استيراد المنشورات في التشغيل الأول:

    65427 / 65812 ( 99.4%)  [2238 عنصر/دقيقة]  المنشور الأصلي 68380 غير موجود. يتم تخطي 68382: خلط كومة في البداية

(“خلط كومة في البداية” هو اسم الخيط المحدد في منتداي.)

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

يبدو أن أداة الاستيراد تتطلب مرورًا ثانيًا (بمجرد تشغيل import_phpbb3.sh مرة أخرى) على قاعدة بياناتي. في المرة الثانية، يبدو أن جميع الآباء المفقودين موجودون بالفعل ولا أحصل على رسائل عن آباء مفقودين.

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

3 إعجابات

هذا يوحي بوجود مشكلة في base.rb أو lookup.rb. لقد لاحظت مشكلة مماثلة في أداة استيراد JSON العامة، لكنني اعتقدت أنها مشكلة خاصة بها. يبدو أن دوال البحث لا تعمل. تخميني هو أن دالة إنشاء المنشور لا تضيف المنشورات الجديدة إلى البنية التي تستخدمها دوال البحث.

سأحاول إلقاء نظرة على ذلك خلال اليوم أو اليومين القادمين.

إعجاب واحد (1)

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

إعجاب واحد (1)

حسنًا، يبدو أن @topics و/أو @posts لا يتم تحديثها بواسطة منشئ الموضوع/المشاركة. في سكريبت الخاص بي، كنت أبحث عن TopicCustomField في الكود الخاص بي بدلاً من الاعتماد على دوال البحث.

لقد راجعت الكود والالتزامات الأخيرة ولم أجد تفسيرًا واضحًا.

إعجاب واحد (1)