تحضير ترحيل phpBB

<div data-theme-toc="true"> </div>

لقد اتخذت عدة خطوات لتنظيف البيانات وإعدادها قبل نقل منتدى phpBB 3.x الخاص بي إلى Discourse. يوضح هذا ما أفعله لمساعدة الآخرين على الاستعداد للهجرة. ستؤدي العديد من الاقتراحات إلى إزالة البيانات، لذا قم دائمًا بعمل نسخة احتياطية لقاعدة البيانات قبل المتابعة مع أي من الاقتراحات أدناه.

تقليم المواضيع والمنشورات القديمة.

راجع فئاتك وحدد ما إذا كانت جميع المواضيع بحاجة إلى الترحيل. هل تحتاج إلى كل البيانات، أم أن السنوات القليلة الماضية من المواضيع ستكون كافية؟ سيقوم phpBB بتقليم المواضيع تلقائيًا بناءً على العمر. يمكنك إعداد/تعديل تواريخ التقليم لمنتدياتك في لوحة تحكم مسؤول phpBB (ACP). انتقل إلى المنتديات وحدد أداة الترس للمنتدى الذي ترغب في تعديله.

تقليم أسماء المستخدمين القديمة.

لن يقوم مستورد Discourse بترحيل المستخدمين الذين لم ينشروا. فهمًا لهذا، يمكنك إزالة المستخدمين القدامى الذين لم ينشروا أبدًا. انتقل إلى لوحة تحكم مسؤول phpBB (ACP) وحدد المستخدمون والمجموعات. يوجد خيار لتقليم المستخدمين. يمكنك تعيين المنشورات لتساوي 0 وتاريخ آخر نشاط. سيسمح لك هذا بإزالة جميع المستخدمين الذين لم ينشروا أبدًا ولم يكونوا نشطين في منتدياتك منذ بعض الوقت.

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

ستقوم هجرة Discourse بترحيل المستخدمين المجهولين كمستخدمين معلقين أو جميعهم إلى مستخدم نظام. راجع عدد المواضيع/المنشورات المنسوبة إلى مستخدم مجهول.
سيحدد MySQL معرف المستخدم (user_id) للمستخدم المجهول. بالنسبة لمعظم التثبيتات، يكون هذا user_id = 1.

SELECT `user_id`, `username` FROM `phpbb_users` where `username_clean` = "anonymous"

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

SELECT * FROM `phpbb_posts` where `poster_id` = "1"
SELECT * FROM `phpbb_topics` where `topic_poster` = "1"

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

مراجعة المنشورات المخفية أو المحذوفة برفق.

كانت هذه ميزة تم تنفيذها في phpBB 3.1. تحقق مما إذا كان لديك أي منشورات مخفية أو محذوفة برفق. يتجاهل Discourse هذا الحقل وسيستورد المنشورات. تم حذف المنشورات بواسطة المستخدم/المشرفين لسبب ما.

SELECT * FROM `phpbb_posts` where `poster_visibility` = "2"

احذف أي منشورات مدرجة.

التحقق من صحة رسائل البريد الإلكتروني النظيفة.

يرجى تشغيل برنامج MySQL النصي التالي للتحقق من صحة رسائل البريد الإلكتروني الخاصة بك حتى لا تحتوي على مسافات زائدة وإزالة أي مشكلات تم تحديدها في البريد الإلكتروني.

SELECT `user_email` FROM `phpbb_users` where CHAR_LENGTH(`user_email`) != CHAR_LENGTH(TRIM(`user_email`)) ORDER BY `user_id` ASC

التحقق من صحة العناوين المكررة.

يحتوي إعداد Discourse على علامة تسمح بالعناوين المكررة. سيساعدك الاستعلام التالي على فهم ما إذا كان لديك العديد من العناوين المكررة. كان لدى منتدى الخاص بي أكثر من 1000 موضوع بعناوين مكررة، لذا قمت بتحديث العلامة للسماح بعناوين مواضيع مكررة.

SELECT `topic_title`, COUNT(*) as count FROM `phpbb_topics` GROUP BY `topic_title` HAVING COUNT(*) > 1 ORDER BY `count` DESC

البحث عن المواضيع اليتيمة.

يجب أن يكون لكل موضوع منشور، ولكن في بعض الأحيان تتعطل الأمور. سيسرد هذا جميع المواضيع التي لا تحتوي على منشورات.

SELECT * FROM `phpbb_topics` WHERE `topic_id` NOT IN (Select topic_id from phpbb_posts) ORDER BY `topic_approved` DESC

قم بتنظيف أي مواضيع يتيمة.

البحث عن المنشورات اليتيمة.

يجب أن ينتمي كل منشور إلى موضوع. سيسرد هذا المنشورات التي لا تحتوي على معرف موضوع (topic_id) صالح.

SELECT * FROM `phpbb_posts` WHERE `topic_id` NOT IN (Select topic_id from phpbb_topics) ORDER BY `post_id` DESC

قم بتنظيف أي منشورات يتيمة.

التحقق من صحة المنشور الأول للموضوع هو منشور صالح.

يمكن حذف المنشور الأول للموضوع، مما يؤدي إلى موضوع بمعرف منشور (post_id) غير صحيح. يتحقق هذا من صحة معرف المنشور الأول للموضوع (topic_first_post_id).

SELECT * FROM `phpbb_topics` WHERE `topic_first_post_id` NOT IN (Select post_id from phpbb_posts) ORDER BY `topic_approved` DESC

قم بتنظيف معرف المنشور الأول للموضوع.

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

7 إعجابات

شكراً جزيلاً على المشاركة. هذه أمور جيدة جداً للتحقق منها في كل عملية ترحيل.

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

اعتماداً على إصدار phpBB، يمكنك إضافة تحقق إلى الكود حتى لا تضطر إلى حذف المشاركات يدوياً في كل مرة.

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

إعجابَين (2)