ترحيل قاعدة بيانات vBulletin 5 - أخطاء في سكربت الاستيراد

حسنًا، “أخبار سيئة” لك يا “جيمي” إذن.

لقد قررنا أن البرنامج النصي في حالة غير مكتملة لدرجة أننا سنعيد كتابته من الصفر لترحيل تثبيت vb3 الخاص بنا مباشرة إلى “ديسكورس”. باستخدام C# أيضًا مما يجعله أسرع بعدة مرات.

إذا تمكنا من جعل البرنامج النصي “عامًا” بما فيه الكفاية، فسنفتح مستودع “جيت هاب” للجمهور، لكنني أشك في وجود الكثير من الاهتمام على أي حال في ترحيل المجتمعات القديمة التي لا تزال عالقة في vb3 اليوم.

إعجابَين (2)

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

بدءًا من يوم الاثنين المقبل، سنبدأ بعض الاختبارات التجريبية على جهاز اختبار، لكن النتائج واعدة.

هذه هي الأرقام الإجمالية التي لدينا:

من حيث الحجم، قاعدة البيانات بتنسيق vbulletin3 تبلغ حوالي 8 جيجابايت.

وتستغرق الاختبارات التي تعمل من أجهزة محلية تتصل بقاعدة البيانات المصدر عن بُعد حوالي 6 ساعات لإكمالها.

يقوم البرنامج النصي بترحيل جميع المنتديات/المنتديات الفرعية، وترجمتها إلى فئات وفئات فرعية. يتطلب فئات فرعية من المستوى الثالث لأن لدينا منتدى قديم الطراز جدًا وهناك بعض منتديات “العشائر” المستضافة هناك والتي تتداخل بعمق شديد.

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

كل منتدى فرعي تم تعيينه بأذونات مخصصة (للقراءة فقط على سبيل المثال)، أو مخصص للمشرفين/المسؤولين فقط، أو ببساطة مخفي مع وصول محمي بكلمة مرور، يتم ترحيله على أنه “متاح للموظفين فقط” بدلاً من ذلك. سيكون هناك حوالي اثني عشر في النهاية ويمكن للموظفين إعادة تمكينها لمجموعات المستخدمين الصحيحة يدويًا.

يتم ترحيل المستخدمين ومجموعات المستخدمين والرسائل الخاصة أيضًا. يتم ترحيل الرسائل الخاصة “بطريقة discourse” مما يعني أنه بدلاً من N موضوع برسالة واحدة كما قد تراها في ترحيل بسيط لقاعدة البيانات 1:1 (هيكل قاعدة بيانات سخيف حقًا)، سيكون لديها الطريقة المنظمة للموضوعات التي يستخدمها discourse.

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

يتم ترحيل المواضيع والمشاركات باستخدام اتصالات متوازية متعددة وسيتم دائمًا محاولة استخدام أكبر عدد ممكن من الاتصالات التي تسمح بها قاعدة البيانات المصدر.

سنرى كم من الوقت يستغرق في المتوسط على جهاز صغير 2vcore/4gb RAM ولكنه بالفعل أسرع بعدة مرات من البرنامج النصي الحالي (غير المكتمل) للترحيل المجمع المتاح.

يمكن تحسين العديد من الأجزاء بشكل أفضل والكثير منها مصمم خصيصًا لمنتدانا (لدينا حتى تعيين في json لإعادة تنظيم الكثير من هيكل المنتدى بحيث يكون أقل فوضوية) لذلك أشك في أنه يمكن رفعه واستخدامه من قبل أي شخص آخر دون بعض التعديلات ولكننا سنناقش داخليًا ما إذا كنا نريد فتح مستودع المصدر للجمهور بعد اكتمال ترحيلنا.

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

آخر تحديث على ما أعتقد.

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

هذه هي الأرقام التي نحققها في المتوسط ​​خلال 30 يومًا، تم تصفية الروبوتات بالفعل.

بالطبع، كان هناك ضغط كبير على فريق المتطوعين الذين تولوا الأمر، والآن لم ينته الأمر بعد حيث ما زلنا نعمل على السمات المخصصة وبعض إعدادات الخلفية لـ discourse (سأضطر إلى فتح العديد من المواضيع لطلب المساعدة/التوضيح/التوجيه على ما يبدو).

تمكن برنامجنا النصي من ترحيل كل ما أردناه:

  • المستخدمون
  • مجموعات المستخدمين
  • حالة المشرف/الحظر/المسؤول
  • الرسائل الخاصة
  • الفئات
  • الموضوع
  • الردود

وهكذا دواليك. لقد قمنا أيضًا بدمج الطبخ في عملية الترحيل نفسها حيث لدينا بعض التخصيصات في vbulletin للسماح بتضمين تغريدات وفيديوهات يوتيوب وأشياء أخرى لن يتم ترجمتها بشكل جيد مع كيفية طهيها بواسطة discourse افتراضيًا.

قمنا بإجراء الاختبارات على 4vcore/8GB واكتمل الترحيل بأكمله في حوالي 7-8 ساعات.
للإنتاج، قمنا بزيادة patreon لدينا بما يكفي لتحمل 8 vcore / 30 GB واكتمل كل شيء في 4 ساعات.

قمنا ببث مباشر للترحيل، مع تضمين بعض البدايات الخاطئة (بالطبع :stuck_out_tongue:) وبعض الموسيقى في الخلفية. لقد استمتعنا كثيرًا.

يمكنك رؤية تفاصيل عدد المواضيع/المشاركات والتوقيت في اللقطة.
التوقيتات الثلاثة هي: وقت القراءة، وقت الطهي، وقت الكتابة.

لقد كانت مغامرة مرهقة ولكنها مثيرة، و @pfaffman، صدقني، لقد تفاديت رصاصة عندما قررت عدم الاستعانة بمساعدتك.

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

ما زلنا نقوم بتشغيل بعض البرامج النصية بعد الترحيل، أحدها يقوم باستيراد جميع الصور الرمزية والآخر يقوم بإنشاء جميع عمليات إعادة توجيه الروابط الدائمة حتى تتم إعادة توجيه الروابط المكتوبة داخل الردود التي لا تزال تشير إلى تنسيق عنوان URL القديم بشكل صحيح. أتوقع أن تنتهي هذه في الـ 24 ساعة القادمة.

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

تعديل: فقط إضافة الترحيل الكامل لجميع صور المستخدمين الرمزية + الروابط الدائمة للمراجع الداخلية للمواضيع/الفئات

image

تم التشغيل بعد ترحيل البيانات الرئيسي.

تحياتي

3 إعجابات

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

يسعدني أنك أنجزت ذلك! تهانينا على عمل جيد

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

أقصد، كانت النقطة هي عدم إغلاق الموقع لمدة شهر في انتظار ترحيله :slight_smile:

أيضًا، من الصعب نوعًا ما عندما يكون البرنامج النصي الرسمي ناقص الأجزاء :thinking:

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

أهلاً! أنا أحد الأشخاص الذين عملوا على هذا.
شخصيًا، لقد كانت تجربة تعليمية ثرية للغاية، وما زال يتعين علينا حل المشكلات الأخيرة، لكن المجتمع بأكمله تفاعل بشكل إيجابي: وصل موضوع ردود المنتدى الجديد إلى…

حسنًا، هذا العدد من المشاركات في حوالي 24 ساعة :ابتسامة:

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

3 إعجابات