كيفية الترحيل إلى Drupal 8 من مصدر SQL في 6 خطوات بسيطة
نشرت: 2020-11-24لقد قيل الكثير عن أهمية وفوائد الهجرة إلى دروبال 8. إن هجرة دروبال هي أهم جزء في سير عمل التطوير. نحن بحاجة إلى ضمان نقل المحتوى بسلاسة دون خسارة أي معلومات وبيانات مهمة للمستخدم. تحقق من هذا الدليل الكامل لترحيل دروبال 7 بنجاح إلى دروبال 8.
هناك عدة طرق للانتقال إلى دروبال 8 باستخدام مصادر مختلفة. لقد كتبنا بالفعل حول كيفية الترحيل من CSV إلى دروبال 8. تتضمن المصادر الأخرى SQL و XML و JSON وما إلى ذلك. في هذه المدونة ، سنناقش حول الانتقال إلى دروبال 8 باستخدام SQL كمصدر.

لماذا SQL؟
بينما يعتمد اختيار مصدر البيانات إلى حد كبير على مصدر البيانات الحالية المطلوب ترحيلها ، فإن بعض الأسباب الشائعة الأخرى لاختيار مصدر SQL لترحيل Drupal 8 هي:
- من السهل كتابة استعلامات للحصول على البيانات المطلوبة عن طريق الاتصال بقاعدة البيانات.
- سيكون ترحيل البيانات من خادم إلى آخر أسرع من أي طريقة أخرى.
- يقلل من استخدام العديد من الوحدات المساهمة.
- لا حاجة لتصدير بيانات المشاهدات التي تُستخدم لتصدير بيانات المشاهدات بتنسيق CSV من مواقع دروبال 7.
- لن نحتاج إلى حقل كلمة مرور طرق العرض الذي يتم استخدامه لترحيل المعلومات الحساسة (كلمات المرور في التجزئة) ، نظرًا لأننا نستخدم استعلام قاعدة البيانات.
- لا توجد حاجة أيضًا إلى وحدة ترحيل مصدر CSV نظرًا لأننا نستخدم مصدر SQL.
فلتبدأ عملية الترحيل!
في هذه المدونة ، سنقوم بترحيل المستخدمين إلى موقع دروبال 8. فيما يلي الخطوات التي سنتخذها للانتقال إلى دروبال 8 -
1. إنشاء وحدة مخصصة للترحيل.
2. الرجوع إلى قاعدة البيانات المصدر.
3. تحديد YML الترحيل وتعيين حقول دروبال المحددة.
4. إنشاء البرنامج المساعد المصدر للهجرة.
5. معالجة الحقول ذات القيمة الفردية والمتعددة القيم والعنوان.
6. قم بتشغيل الترحيل باستخدام أداة سطر أوامر drush.
الخطوة 1: إنشاء وحدة مخصصة لترحيل دروبال 8.
أولاً ، دعنا ننشئ وحدة مخصصة أثناء إنشائك في دروبال 8. تحقق من هذه المدونة التفصيلية لإنشاء وحدات مخصصة في دروبال 8. هنا نقوم بإنشاء وحدة تسمى " ترحيل موظف الشركة ". هيكل الوحدة هو كما يلي:

company_employee_migrate.info.yml: يتكون من المعلومات الأساسية المتعلقة بالوحدة وتوابعها.
company_employee_migrate.install: سيتم استخدام هذا لكتابة نصوص PHP النصية التي يجب تشغيلها أثناء تثبيت الوحدة وإلغاء تثبيتها. في حالتنا ، نقوم بحذف تكوين الترحيل عند إلغاء تثبيت الوحدة. انظر أدناه لقطة الشاشة للبرنامج النصي.

company_employee_migrate.module: سيتم استخدام هذا لتعريف الخطافات العامة للموقع. هذه هي الأشياء الأولية اللازمة للوحدة. سنشرح الباقي في الخطوات التالية.
الخطوة 2: الرجوع إلى قاعدة البيانات المصدر
بعد ذلك ، نحتاج إلى إعداد قاعدة البيانات المصدر حيث نقوم باستخراج البيانات. قم بتحديث ملف settings.php لموقعك على Drupal بالانتقال إلى webroot -> مواقع -> افتراضي -> settings.php .
أضف اتصال قاعدة البيانات الجديد أسفل الاتصال الافتراضي كما هو موضح في لقطة الشاشة أدناه. " الترحيل " هو مفتاح قاعدة البيانات المصدر.

الخطوة 3: تحديد YML الترحيل وتعيين حقول دروبال.
الآن ، نحتاج إلى تحديد الحقول التي نريد ترحيلها وتعيين تلك الحقول في yml الترحيل. في هذا المثال ، نقوم بترحيل معرّف المستخدم ، واسم المستخدم ، وكلمة المرور ، والبريد الإلكتروني ، والحالة ، والطابع الزمني المُنشأ ، والاسم الأول ، والاسم الأخير ، والدور الوظيفي ، والعنوان البريدي وما إلى ذلك.
بعد تحديد الحقول ، نحتاج إلى تعريف الهجرة على migrate_plus.migration.company_employee.yml . الآن دعونا نلقي نظرة فاحصة على yml الهجرة وتعييناتها.

المعرّف: معرّف فريد لعملية الترحيل yml.
التسمية: اسم العرض للترحيل.
igration_group: اسم مجموعة الترحيل.
المصدر: اسم التعليق التوضيحي للمكوِّن الإضافي لمصدر الترحيل. سيتم تحديد ذلك في التعليق التوضيحيMigrateSource في src / Plugin / migrate / source / CompanyEmployee.php .
الوجهة: اسم المكون الإضافي لوجهة الترحيل. في هذه الحالة ، الكيان: المستخدم لأننا نقوم بترحيل كيان المستخدم.
العملية: في العملية ، سنقوم بتعيين حقول دروبال مع حقول المصدر. قيم الجانب الأيسر هي أسماء أجهزة المجال وقيم الجانب الأيمن هي أسماء الحقول التي نمررها من البرنامج المساعد المصدر.
igration_dependencies: هذا مفتاح اختياري. لن يتم استخدام هذا إلا إذا كان هناك أي اعتماد على عمليات الترحيل الأخرى.
الخطوة 4: إنشاء البرنامج المساعد المصدر للترحيل
المكوِّن الإضافي لمصدر الترحيل هو قلب عملية ترحيل SQL. يوجد أدناه الشرح التفصيلي للمكوِّن الإضافي المصدر.

- يمكن إنشاء المكون الإضافي المصدر في src / Plugin / migrate / source / CompanyEmployee.php
- ستكون مساحة الاسم هي Drupal \ company_employee_migrate \ Plugin \ migrate \ source .
- تتضمن التعليقات التوضيحية MigrateSource معرف المكون الإضافي المصدر الذي قمنا بتعيينه في تعريف الترحيل.
- نحن هنا نقوم بتوسيع فئة Abstract SqlBase التي توفرها وحدة الترحيل الأساسية.
انظر الصورة أدناه للرجوع اليها.

يجب أن يقوم البرنامج المساعد المصدر بتنفيذ الطرق الثلاث التالية -
الاستعلام (): سيؤدي هذا إلى إرجاع بيانات الحقول المصدر عن طريق الاتصال بقاعدة البيانات المصدر. انظر لقطة الشاشة أدناه والتي ستعيد بيانات الحقل حيث يكون معرف المستخدم أكبر من 0 وينتهي بريد المستخدم بـ "@ phyins.com".

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

getIds () : ستعيد هذه الطريقة معرفًا فريدًا لصف المصدر. سيعيد الكود أدناه معرف مستخدم من نوع عدد صحيح لأن uid سيكون فريدًا لكل مستخدم.

بصرف النظر عن هذه الأساليب المذكورة أعلاه ، لدينا أيضًا:
PreparRow (): سيتم استدعاء هذه الطريقة مرة واحدة لكل صف. نقوم بتحميل البيانات هنا من جداول وعمليات مختلفة وفقًا للمتطلبات. ستتوفر أي خاصية نقوم بإنشائها باستخدام $ row-> setSourceProperty في خطوة العملية. سنستخدم استعلام Drupal 8 DB للحصول على البيانات في PreparRow () .
baseFields (): سيحتوي هذا على مجموعة من الحقول الأساسية من "users_field_data " التي يمكن استخدامها بواسطة طريقة الاستعلام () . ابحث عن الكود في الصورة أدناه.

الخطوة 5: معالجة الحقول ذات القيمة الفردية والمتعددة القيم والعناوين.
في دروبال ، لدينا أنواع مختلفة من الحقول ويمكن أن تصبح معالجة بعض الحقول صعبة بعض الشيء للمطورين أثناء ترحيل المحتوى. لقد أضفت مقتطفات التعليمات البرمجية لبعض الحقول أدناه:
حقول القيمة الفردية: تتضمن هذه الحقول الحقول النصية والحقول المنطقية والبريد الإلكتروني وما إلى ذلك. ابحث عن مقتطف الشفرة أدناه للحصول على حقل قيمة واحد ؛ هنا يمكن تعيين field_first_name على النحو التالي.

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

حقول العنوان: سيكون ترحيل حقل العنوان الذي توفره وحدة العنوان مختلفًا قليلاً عن ترحيل الحقول الأخرى. نحتاج إلى معالجة البيانات التي تم الاستعلام عنها مسبقًا في مصفوفة ارتباطية باستخدام المفاتيح المناسبة كما هو موضح أدناه لـ field_mailing_address .

الآن كل شيء جاهز لتشغيل الترحيل عن طريق تثبيت الوحدة النمطية company_employee_migrate في موقع دروبال 8.
الخطوة 6: قم بتشغيل الترحيل باستخدام أداة سطر أوامر drush
أخيرًا ، نحن جاهزون لترحيل SQL الخاص بنا. لتشغيل الترحيل ، نحتاج إلى تثبيت drush (إذا لم تكن تستخدمه بالفعل).
قائمة أوامر drush المفيدة لهجرة دروبال:
drush migrate-status: سيؤدي هذا إلى إرجاع حالة الترحيل بالتفاصيل.

drush migrate-importigration_id: سيؤدي هذا إلى استيراد البيانات من المصدر إلى الموقع.

drush migrate-reset-statusigration_id: إذا توقف تنفيذ البرنامج النصي أو توقف مؤقتًا ، فستظهر حالة الترحيل كـ "Importing". سيقوم هذا الأمر بإعادة تعيين حالة الترحيل إلى "خامل" حتى نتمكن من متابعة استيراد الترحيل.

drush migrate-rollbackigration_id: سيتم استخدام هذا للعودة إلى حالته السابقة.
