مهاجرتی آسان از دروپال ۷ به دروپال ۸ !

تصویر مهاجرتی آسان از دروپال 7 به دروپال 8 !

وب کاران-احتمالاً از شنیدن اینکه هیجان زیادی پیرامون این بخش های مربوط به دروپال ۸ وجود دارد زیاد متعجب نخواهید شد.با توجه به اینکه اخیراً نسخه های کاربردی دروپال ۸ بیرون آمدند و در تاریخ ۱۹ نوامبر ۲۰۱۵ به طور رسمی منتشر شد،بخش های زیادی را در برنامه ی آموزشی خود قرار داده ایم و در حال نوشتن آموزش های جدیدی هستیم.

                                  

 ذات توسعه دهنده ی من،من را برای امتحان کردن دروپال ۸ در یک پروژه ی واقعی غلغلک می دهد. سایت Drupalize.Me، دارای پیچیدگیهای زیادی از قبیل:تجارت الکترونیک (با قابلیت صدور صورت حساب دوره ای)، ارسال ویدئو و انبوه زیادی از محتوا می باشد که همین ها کافی هستند تا در حال حاضر ما را از انتخاب آن به عنوان اولین پروژه ی واقعی منصرف کنند.اما قطعاً می توانیم به وبلاگمان امید بیشتری برای انجام این کار داشته باشیم.Justin طرح جدید فوق العاده ای برای ما دارد.Amber ذکر کرده است که تا چه حد طرفدار ابزار جدید نگارش در دروپال ۸ است. از آنجائیکه وبلاگ نسبتاً ساده و بدون پیچیدگی است در نتیجه برای کل تیم ما نمونه ی بسیار خوبی برای شروع استفاده از دروپال ۸ می باشد.به این ترتیب، برای شروع ارتقاء وبلاگمان اولین چیزی که باید در نظر بگیریم مهاجرت داده ها می باشد.بیائید نگاهی به ماژولMigrate، که اکنون بخشی از هسته ی دروپال است بیاندازیم و ببینیم که چه مقدار کار پیش رویمان قرار دارد.

منابع مهاجرت از دروپال به دروپال

اولین توقف من در این ماجراجویی Drupal.org بود که در آنجا مستندات ماژول Migrate را بررسی کردم. در حال حاضر ۴ ماژول مربوط به مهاجرت وجود دارند که باید بدانید:

  • ماژول Migrate: هسته ی API
  • ماژول Migrate Drupal: کلاس های مورد نیاز برای مهاجرت از دروپال به دروپال ۸ را فراهم می کند.
  • ماژول Migrate Upgrade: یک رابط کاربری ساده را برای اجرای مهاجرت ها از دروپال ۶ یا ۷ تامین می کند. تلاش برای اینکه بخش بیشتری از این رابط کاربری در هسته قرار بگیرد در حال انجام است.
  • ماژول Migrate Plus: مکان فعلی برای مهاجرت عملیاتی بخش هایی از دروپال ۷ است که در هسته انجام نشدند. اینجا مکان مواردی از قبیل پلاگین هایی است که منابع داده های XML ،CSV و JSON و همچنین پایگاه داده های اختصاصی مانند MS SQL یا Oracles را پشتیبانی می کند. این ماژول شامل ماژول دیگری به نام Migrate Tools هم می شود که به منظور مدیریت مهاجرت ها ،دستورات بیشتری را برای رابط کاربری(UI) و drush  فراهم می کند.به یاد داشته باشید که قرار است اوایل هفته ی آینده، ماژول Migrate Plus تقسیم شده و به چندین ماژول کوچکتر تبدیل شود. مایک رایان در وبلاگ خود اطلاعات بیشتری در مورد این تقسیم شدن را در اختیارتان قرار می دهد.

بعلاوه، ماژول های هسته که برایشان مسیرهای مهاجرت نوشته شده است، درون دایرکتوری های خودشان پلاگین های مهاجرت خواهند داشت ( برای مثال به ماژول طبقه بندی/taxonomy یا کاربر/user مراجعه کنید).

منبع بعدی من بازدید از صفحه ی کتاب راهنما در Drupal.org برای ارتقاء دروپال ۶ و ۷ به دروپال ۸ بود.

طبق آن چیزی که این صفحه خاطر نشان می کند، موارد لازم برای شروع یک مهاجرت عبارتند از:

  • یک محیط لوکال برای سایت منبع خود
  • یک سایت دروپال ۸ لوکال
  • ماژول Migrate Upgrade
  • Drush ۸.x (یا dev)

بعد از آماده کرن این اصول اولیه می توانید با استفاده از UI یا Drush، مهاجرت را آغاز کنید.

یک داستان اخطارآمیز

دروپال ۸ هنوز در مرحله ی نسخه ی کاربردی است (البته در زمان نوشتن این مطلب)، و لیستی از مسائل شناخته شده در مورد مسیر مهاجرت از دروپال به دروپال نیز وجود دارد که احتمالاً در نسخه ی ۸.۰.۰ باقی خواهند ماند. شاید مهمترین مسئله ای که در مورد این مهاجرت خاص وجود دارد این است که هنوز مهاجرت ویوز/Views به صورت خودکار انجام نمی شود. مسئله ی دیگری که من با آن برخورد کردم فرمت های ورودی سایت فعلی ما بود. یکی از فرمت های ورودی ما منوط به ماژول سفارشی شده ای است که هنوز به دروپال ۸ وارد نشده است. بیشتر مشکلاتی که در جریان این مهاجرت با آنها مواجه خواهید شد، در حال حاضر در یکی از دو دسته بندی زیر قرار می گیرند:

  • فقدان مسیرهای مهاجرتی
  • ماژول های مختلفی که لازم است به دروپال ۸ وارد شوند

قبل از اینکه عملاً مهاجرت را شروع کنید، شاید ایده ی خوبی باشد که ابتدا ماژول های مختلف موجود در سایتتان را شناسایی کرده و ببینید که کدامیک از آنها هم اکنون در نسخه ی دروپال ۸ موجود و قابل استفاده هستند.با توجه به مسیرهای مهاجرتی موجود، همانطور که در تصویر زیر مشاهده می کنید در اینجا مهاجرت از طریق UI واقعاً مفید است.

                     

آماده سازی برای مهاجرت

برای شروع، من ماژول های Migrate،Migrate Drupal و Drupal Update را بر روی سایت دروپال ۸ لوکال خودم فعال کردم. با فعال کردن این ماژول ها حالا می توانیم فرم ارتقاء را (در مسیر/ ارتقاء) ببینیم. در اینجا با هشدار دیگری برای استفاده نکردن از سایت آنلاین خود به عنوان منبع داده و همچنین برخی یادآوریهای دیگری در مورد فعال کردن ماژول ها و دسترسی به پایگاه داده روبرو می شوید.

سپس از شما خواسته می شود که اعتبار و محل منبع پایگاه داده و فایل ها یتان را مشخص کنید.بعد از وارد کردن این اطلاعات، لیستی از مسیرهای مهاجرت موجود و ناموجود در اختیارتان قرار می گیرد. این لیست به خوبی به شما نشان می دهد که چه چیزی ممکن است از دست برود و به شما خاطر نشان می کند که برای اینکه سایت دروپال ۸ جدید خود را  واقعاً آماده ی مهاجرت کنید چه مقدار کار لازم است انجام دهید.در تصویر زیر مسیرهای مهاجرتی ناموجود را ملاحظه می کنید.

           

محدودیت های مهاجرت از طریق UI

اگر در این مرحله، مهاجرت را از طریق UI ادامه دهید،وارد کردن تمام مهاجرت های موجود را راه اندازی خواهد کرد. در اولین تلاشم برای انجام مهاجرت با این روش، با چند مسئله برخورد کردم.می توانید تصور کنید که مهاجرت تمام کاربرها، محتوا و پیکربندی سایتی در این اندازه، مدت زمان اندکی طول می کشد.در واقع، اولین تلاشم، در طول روند وارد کردن کاربر، به یک batch failure انجامید. من (درنهایت) بعد از چند بار تکرار اجرای مهاجرت از وب UI توانستم آن را تکمیل کنم.

بهبود روند مهاجرت با استفاده از Drush

با توجه به اینکه اسناد و مدارکی برای توصیه به استفاده از Drush برای اجرای مهاجرت ها در دسترس نیست، فکر کردم  ارزش امتحان کردن را داشته باشد. ماژول Migrate Tools (که به عنوان بخشی از ماژول Migrate Plus محسوب می شود) چندین دستور مفید Drush را ایجاد می کند.

  • migrate-import ‪(mi)‬: اجرای یک یا چند فرآیند مهاجرت
  • migrate-manifest: اجرای مهاجرت هایی که در یک فایل مانیفست مشخص شده اند
  • migrate-messages: مشاهده ی هر پیام مرتبط با مهاجرت
  • migrate-reset-status: تنظیم وضعیت مهاجرت از حالت فعال به غیر فعال
  • migrate-rollback: بازگرداندن یک یا چند مهاجرت به قبل
  • migrate-status ‪(ms)‬: لیست کردن وضعیت فعلی تمام مهاجرت ها
  • migrate-stop ‪(mst)‬: متوقف کردن یک مهاجرت فعال

با اجرای migrate-status، لیستی از تمام مهاجرت های موجود، وضعیت ها، تعداد کل رکوردها، میزان آنچه که وارد شده و آنچه که پردازش نشده و همچنین اطلاعاتی راجع به آخرین وارد کردن اطلاعات، دریافت می کنم. برای اجرای یک مهاجرت خاص می توانیم از migrate-import استفاده کنیم. وقتی برای اجرای انتخابی مهاجرتهایی که برای وبلاگمان لازم داشتم از Drush استفاده کردم، به صورت چشمگیری باعث تسریع زمان انجام مهاجرت این سایت خاص شد. با حرکت در این مسیر، همانطور که مستندات Drupal.org توصیه می کند، برای اجرای مهاجرت ها همچنان به جای UI از Drush استفاده خواهم کرد.

ایجاد فایل migrate manifest YAML

بعد از انتخاب روش مورد نظرتان برای انجام مهاجرت، می توانید یک فایل migrate manifest YAML را بسازید و از آن برای اجرای مجموعه ی خاصی از مهاجرت ها استفاده کنید.می توانید از مستندات موجود در سایت drupal.org برای آگاهی از جزئیات ساختن این فایل مانیفست کمک بگیرید. وقتی فایل مانیفست ساخته شود دستور migrate-manifest برای هر مورد مشخص شده در فایل، یک مهاجرت را راه اندازی می کند.

در تصویر زیر مهاجرت محتوا به دروپال ۸ را مشاهده می کنید.

برداشت های فعلی

اینکه در حال حاضر فرآیند مهاجرت دروپال ۸ تا این اندازه ساخته و پرداخته شده است، واقعاً من را تحت تاثیر قرار می دهد. قطعاً چند ماژول مختلف وجود دارند که به منظور داشتن وبلاگی که به طور کامل با دروپال ۸ کار کند نیاز به ارزیابی آنها خواهیم داشت، اما من بدون حتی یک خط کد نویسی توانستم بخش عمده ای از محتوایمان را منتقل کنم.

در نگاهی به گذشته، همچنانکه نقل مکان وبلاگمان به یک سایت دروپال ۸ ی را ارزیابی می کنیم، اکنون لازم می دانم که به عقب برگردم و سایت منبعی که از آن برای مهاجرت استفاده کردم را پاک کنم. اگر بخواهیم وبلاگمان را جدا کرده و آن را به یک سایت دروپال ۸ جداگانه ای تبدیل کنیم، دیگر به همه ی آن انواع محتوا یا بسیاری از سایر پیکربندیهای سایت که در نتیجه ی سایت اصلی یعنی Drupalize.Me هستند نیاز نخواهیم داشت. به این ترتیب بسیاری از فایل ها و کدهای بیهوده از وبلاگ ما حذف خواهند شد که به خودی خود باعث تسریع روند مهاجرت فعلی خواهد شد. همچنین نیاز به بررسی چند ماژول کلیدی موجود و بازسازی تعدادی از ویو ها/Views خواهیم داشت (چراکه در حال حاضر دارای مسیر مهاجرتی قابل استفاده نیستند).  

خیابان ولیعصر - روبه روی پارک ساعی - خیابان آبشار - پله ششم - پلاک ۴ - طبقه ۲
طراحی سایت با دروپال (وب کاران)