العلم وراء هجرة دروبال 7 إلى 9 الناجحة (ولماذا يفشل بعضها)

نشرت: 2021-12-15

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

إذا كان هذا يبدو مألوفًا وكنت تواجه مشكلات غريبة بعد ترقية موقع Drupal 7 (أو 6) إلى Drupal 9 (أو 8) ، فيرجى قراءة هذه المقالة حتى النهاية . سوف ندخل في المشاكل الشائعة التي يواجهها مالكو المواقع بعد قيامهم بترقية دروبال 7 (أو 6) إلى دروبال 9 (أو 8) وكيف يمكن حلها. لن يغطي هذا جميع المشكلات التي نراها عندما نأتي لإنقاذ الهجرة ، ولكن يجب أن يوصلك على الأقل إلى نقطة يمكنك فيها النوم ليلاً.

دروبال 7 إلى دروبال 9

ترقية دروبال من 7 إلى 9 - التحدي الأساسي

ربما يكون السؤال الأول الذي تطرحه على نفسك هو ، "لماذا؟" يبدو أن الترقية من Drupal 7 إلى Drupal 9 (تم الآن غروب الشمس Drupal 8) لا ينبغي أن تكون بهذه الصعوبة من منظور النظام الأساسي.

حسنًا ، لقد غيرت دروبال 8 كل شيء. كان لديه إصلاح معماري كامل حتى يكون CMS أكثر استدامة وملاءمة وأسهل للحصول على تعليق على المدى الطويل. إنه اعتماد التقنيات والأطر الحديثة مثل البرمجة الموجهة للكائنات ، و Symfony ، و Twig ، وأحدث إصدارات PHP و (أكثر من ذلك بكثير) ، مما سمح أيضًا لمجتمع دروبال بالنمو بشكل كبير من خلال استيعاب مجموعة واسعة من المهارات للمساعدة في بناء دروبال. مما يعني أنه أصبح من السهل الآن العثور على خبير لبناء وصيانة موقع دروبال الخاص بك. الخبر السار هو أن الترقية إلى أي إصدارات مستقبلية من دروبال (مثل دروبال 8 إلى دروبال 9) بعد ذلك الترحيل الأولي أمر سهل للغاية ولن يتطلب إعادة بناء.

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

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

تدقيق الهجرة

تحديات الهجرة المشتركة دروبال 7 إلى 9

أحد أكثر مصادر الإحباط شيوعًا بعد هجرة دروبال 6/7 إلى 8/9 هو عدم معرفة من أين نبدأ عند التعامل مع المشكلات. كيف يمكنك ، بمهارات البرمجة أو بدونها ، اكتشاف أين تكمن المشكلات الحقيقية؟ سهل - تحقق من سجلات الأخطاء الخاصة بك. أعلم ، يبدو أنك تفتح علبة أخرى من الديدان تحاول فهم ما تقوله السجلات ، لكننا سنرشدك عبر الأنواع الشائعة أدناه.

كيف أجد سجلات الأخطاء الخاصة بي؟

  1. تأكد من تمكين وحدة dblog في المسؤول -> صفحة الوحدات النمطية. هذه وحدة أساسية.
  2. انتقل إلى المسؤول -> التقارير
  3. انقر فوق سجلات قاعدة البيانات. يجب أن ترى كل سجلات الأخطاء الخاصة بك هنا.

دعنا نتعمق في بعض المشكلات الأكثر شيوعًا التي يواجهها مالكو مواقع دروبال بعد ترحيل دروبال 7 إلى دروبال 9.

موقع الويب بالكاد معطل / معطل

  1. مشكلات الخادم: يمكن اختراق الخادم الخاص بك إذا لم يكن لديك أذونات كافية للوصول إلى الخادم الخاص بك. ستساعدك نظرة أعمق في سجلات الأخطاء على فهم مصدر المشكلة. إذا كانت مشكلة في الخادم ، فتأكد من أن لديك حقوقًا كافية للوصول إلى الخادم الخاص بك. اتصل بمزود الاستضافة لزيادة حد الذاكرة إذا كنت تواجه مشكلة نقص المساحة. إذا لم يساعد ذلك ، فقم برفع تذكرة معهم تذكر مشكلة الخادم الخاص بك.
  2. كود مخصص: إذا كان موقع Drupal 6/7 الخاص بك أكثر تعقيدًا مما كان متوقعًا ، فمن المحتمل أنه بدلاً من تقييم الكود المخصص وتعيينها بشكل صحيح قبل الترحيل ، تم إجراء عملية رفع وتحويل بسيطة. إذا كانت لديك شروط مخصصة يتم تشغيلها عند تحميل صفحتك ولم تعثر على الرمز المخصص المرتبط بها ، فسوف ينتهي بك الأمر بصفحة معطلة. أول شيء يجب فعله هو التحقق لمعرفة ما إذا كنت قد قمت بتقييم موقع الويب بشكل صحيح في تدقيق الترحيل (إذا قمت بذلك) للتحقق من الوحدات النمطية والرموز المخصصة. إذا كانت المشكلة بسبب حالة مخصصة وكان الرمز مفقودًا ، فستحتاج إلى مطور دروبال لإنشاء تنفيذ الكود المخصص. من الناحية المثالية ، يجب إنشاء الشفرة المخصصة قبل ترحيل أي محتوى.
  3. الوحدة الأساسية / المساهمة: في بعض الأحيان قد تواجه مشكلة معروفة في الوحدة الأساسية أو الوحدة النمطية التي تم المساهمة بها والتي تحتوي بالفعل على حل / تصحيح. القليل من البحث يمكن أن يساعد في تحديد هذا. ابحث عن التصحيح وقم بتطبيقه ويجب أن تكون على ما يرام.
  4. إصدارات / مكتبات PHP قديمة: ربما لا يزال موقع دروبال الجديد الخاص بك يشغل إصدارًا قديمًا من PHP أو مكتبات تعتمد عليها التعليمات البرمجية الخاصة بك. تأكد من أن موقع الويب الخاص بك يستخدم أحدث إصدار من PHP والمكتبات الأخرى. تحقق أيضًا من استيفاء جميع متطلبات النظام والتكوينات.

تعذر تحرير الصفحات (مشاكل الأذونات)

  1. خطأ 500: إذا لم تكن قادرًا على تحرير الصفحات لأنك تواجه 500 خطأ داخلي في الخادم ، فقد يرجع ذلك إلى عدة أسباب (خطأ في التكوين ، أو رمز خاطئ ، أو فهرسة خاطئة ، أو تجميع ، وما إلى ذلك). ومع ذلك ، فإن أحد الأسباب الأكثر شيوعًا هو أنه قد يكون بسبب عدم التوافق بين تنسيقات الحقول أو الحقول المفقودة. على سبيل المثال ، إذا لم يتم ترحيل حقل التاريخ الخاص بك من موقع Drupal 7 بالتنسيق الصحيح أو لم يتم تحويل القيمة إلى تنسيق Drupal 9 ، فسيؤدي ذلك إلى ظهور خطأ. مثال آخر هو إذا كنت تستخدم حقل الصور في دروبال 7 ، لكن في دروبال 9 ، تستخدم حقل وسائط بدلاً من ذلك. أفضل طريقة لإصلاح ذلك هي تصحيح البرنامج النصي للترحيل لتخزين البيانات بشكل صحيح. إذا لم يكن هناك سوى عدد قليل من الحقول لتحريرها ، فيمكنك أيضًا إنشاء تحديث ربط.
  2. خطأ 403: في كثير من الأحيان ، يكون الخطأ 403 بسبب النقل غير الصحيح للأذونات. تحقق مما إذا تم إعداد الأذونات بشكل صحيح. إذا كنت تستخدم وحدة لإدارة المستخدمين ، فتحقق مما إذا كانت متوفرة في Drupal 9. في بعض الأحيان ، قد يكون لديك خطافات أو مشتركون في الأحداث يقيدون الوصول إلى بعض المستخدمين. تحقق من هذه الشروط وتأكد من تنفيذها في التثبيت الجديد أيضًا.
  3. صفحة الأذونات لا تستجيب: ربما يقوم موقع Drupal الخاص بك بتنفيذ بعض التعليمات البرمجية المخصصة للتعامل مع الأذونات. إذا لم يتم تنفيذ هذا الرمز في موقع Drupal 9 الجديد ، فقد لا تتمكن من عرض أو تحرير (أو كليهما) صفحة الأذونات. من حين لآخر ، نرى حالات تم فيها ترحيل المستخدمين بشكل جماعي دون ترحيل أدوارهم وملفات تعريف المستخدمين بشكل صحيح. كممارسة قياسية ، قبل ترحيل الأذونات ، يجب على المطور إنشاء أذونات مخصصة وتعيينها لأدوار من الأشخاص / الأذونات.

أداء موقع بائس

  1. الوحدات غير الضرورية: الوحدات النمطية هي اللبنات الأساسية لموقع Drupal الخاص بك ، لذا سترغب في ترحيلها أيضًا. لكن في بعض الأحيان نرى وحدات دروبال 7 القديمة غير الضرورية تنتقل إلى دروبال 9 والتي يمكن أن تسبب كل أنواع المشاكل. خاصة لأنها يمكن أن تثقل موقع الويب الخاص بك. فيما يلي بعض الأسباب التي تجعل بعض الوحدات النمطية الخاصة بك لا تحتاج إلى الترحيل:
    • تم نقل الوحدة (أو وظيفتها) بالفعل إلى دروبال كور. على سبيل المثال ، انتقلت الوحدة النمطية التي تساهم بها الوسائط إلى المركز الأساسي في دروبال 8.5 ، مما يلغي الحاجة إلى استخدام الوحدة التي تمت المساهمة بها.
    • وظيفتها بسيطة ويمكن إدراجها في وحدة مخصصة أخرى. على سبيل المثال ، إذا تم استخدام الوحدة النمطية node :: postSave فقط لنوع واحد أو نوعين من أنواع المحتوى لاختيار المكان الذي يجب أن يذهب إليه المستخدم بمجرد إنشاء العقدة ، فقد يكون من الممكن نقل الكود إلى وحدة نمطية مخصصة بدلاً من ذلك.
    • متطلبات الوحدة يحتاج إلى إعادة تقييم. في بعض الأحيان ، قد يؤدي تغيير بسيط في قابلية الاستخدام إلى تحسين أداء موقع الويب بشكل كبير. على سبيل المثال ، لا تحتاج جميع مواقع الويب حقًا إلى وحدة تنسيق المحتوى ما لم يكن فريق تسويق المحتوى كبيرًا وموزعًا. ميزات سير العمل التحريري الأساسية لدروبال (مسودة ، نشر) جيدة بما يكفي لمعظم متطلبات العمل التي لا تحتاج إلى سير عمل معقد / مفصل.
    • في بعض الأحيان ، يتم تثبيت الوحدات الفرعية جنبًا إلى جنب مع الوحدات النمطية ولكن نادرًا ما يتم استخدامها / لا يتم استخدامها أبدًا. يجب إزالة هذه الوحدات الفرعية.
  2. تكرار نفس البنية: على الرغم من أنه من الأسهل ببساطة رفع ونقل وإزالة الغبار عن يديك ، إلا أنه لا يعد أسلوبًا جيدًا على الإطلاق. خاصة إذا كانت العمارة القديمة (دروبال 6/7) فوضوية وأقل قوة. قد يحتاج التغيير في منطق / متطلبات العمل أيضًا إلى إعادة هيكلة كاملة. سيخبرك التدقيق الشامل للموقع بالضبط بالوحدات التي يجب الاحتفاظ بها وما يمكن التخلص منه بأمان.

تكامل الطرف الثالث لم يعد يعمل

  1. إصدار واجهة برمجة التطبيقات القديمة: إذا كان موقع الويب الخاص بك متصلاً بأدوات مختلفة تابعة لجهات خارجية مثل Salesforce و Marketo و Mailchimp وما إلى ذلك ، يمكن أن تؤثر عملية الترحيل التي يتم تنفيذها بشكل غير صحيح على كيفية عمل عمليات الدمج هذه. غالبًا ما تكون واجهة برمجة التطبيقات التي تطلبها في وحدة تكامل دروبال إصدارًا قديمًا. الإصلاح الوحيد هو أن التكامل يجب كتابته في أحدث إصدار من واجهة برمجة تطبيقات الطرف الثالث.
  2. مشكلات وحدة التكامل: سوف تحتاج إلى التحقق مما إذا كان يتم استدعاء واجهات برمجة تطبيقات الطرف الثالث بشكل صحيح في وحدة التكامل. هل تم تمرير المعلمات بشكل مناسب؟ تحقق من كيفية ضبطها واسترجاعها. تحقق من قائمة انتظار المشكلة لوحدة التكامل هذه. قد يكون هناك تصحيح متوفر يحتاج إلى تطبيق. يجب إجراء الاختبار المناسب للتأكد من أن واجهة برمجة التطبيقات قد تم نقلها بشكل صحيح إلى دروبال 9.

المشكلات الشائعة الأخرى والإصلاحات

  1. تثبيت الوحدة النمطية: استخدم الملحن دائمًا لتثبيت الوحدات. سيؤدي ذلك إلى تجنب الأخطاء بسبب التبعيات غير الصالحة / غير المتوفرة.
  2. عدم تطابق مصدر الترحيل: بغض النظر عن مصدر الترحيل الخاص بك (CSV ، وقاعدة البيانات ، و JSON ، و XML) ، تأكد من تطابق الحقول المصدر مع الحقول الوجهة. إذا كنت تستخدم ملف CSV كمصدر لك ، فضع في اعتبارك ترتيب الاستيراد - فالأولوية مهمة لتعيين أنواع المحتوى.
  3. مسارات الصور: في كثير من الأحيان ، يضيف المستخدمون الصور مباشرةً داخل محتوى CKEditor. لا تنتقل هذه الصور دائمًا إلى المسار المحدد عند ترحيلها لأن موقعها يختلف عادةً عن مكان وجود ملفات الوسائط الأخرى. يجب أن تهتم الهجرة المخطط لها بدقة بهذه المشكلة.
  4. مُحسّنات محرّكات البحث: يمكن أن تؤثر عملية ترحيل دروبال 7 إلى 9 المهملة على مُحسّنات محرّكات البحث لموقعك بعدة طرق. واحدة من أهم المشاكل هي الروابط المعطلة. تأكد من الحفاظ على بنية URL الحالية والتنقل حيث يمكن أن تؤدي أي تغييرات إلى عدد كبير من الروابط المعطلة. يجب إجراء تدقيق كامل لتحسين محركات البحث للتأكد من عدم وجود عقبات في الطريق.
  5. نمط دروبال 7: غالبًا ما تظهر مشكلات ترحيل دروبال 7 إلى دروبال 9 (خاصة مشكلات الأداء) لأن المطورين يستخدمون نفس أسلوب الترميز مثل دروبال 7 بدلاً من التكيف مع التغييرات التي أدخلتها دروبال 8. أمثلة ، (أ) الطريقة التي تقتل بها تختلف ذاكرة التخزين المؤقت للصفحة اختلافًا كبيرًا في دروبال 8. (ب) يحتوي دروبال 8 على إدارة تكوين مضمنة ولكن غالبًا لا يتم تنفيذها بالطريقة الصحيحة أو يتم صيانتها جيدًا في كل بيئة. (ج) لقد صادفنا أيضًا حالات لا يزال فيها مشروع دروبال 8 يطبق أسلوب الكود الإجرائي.