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

دروبال: قم بإزالة المكون الإضافي الخفي من قاعدة البيانات

تم النشر بتاريخ 2024-08-21
تصفح:741

Drupal: Rimuovere un plugin fantasma dal database

المصدر: https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215

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

[error]  Drupal\Component\Plugin\Exception\PluginNotFoundException:
         The "name-of-plugin" entity type does not exist.
         in Drupal\Core\Entity\EntityTypeManager->getDefinition()

يمكن أن يساعدك تمكين التكوين الذي يعرض جميع رسائل الخطأ في فهم مكان وجود الخطأ والمكان الذي يجب اتخاذ الإجراء فيه.
يمكنك تفعيل تمكين السجل الكامل على صفحة admin/config/development/logging هنا. يمكن أن يساعدك هذا التكوين في معرفة ما إذا كانت المشكلة تكمن في التكوينات أم أن اسم المكون الإضافي مشفر في التعليمات البرمجية الخاصة بك.

الآن سنتناول كيفية حل المشكلة إذا كانت مرتبطة بالتكوينات وللقيام بذلك لدينا طريقتان ممكنتان:

  • تصدير التكوين بالكامل وإعادة استيراده بعد إزالة مراجع البرنامج المساعد
  • التعامل مباشرة مع التكوينات الموجودة في قاعدة البيانات وإزالة المكون الإضافي

تصدير التكوين بأكمله وإعادة استيراده

يعد هذا الحل على الأرجح من بين الحلول الأكثر استخدامًا إذا اتبعت منهجية الإصدار القياسية الموصى بها من قبل مجتمع دروبال.
قم بتصدير التكوين بالكامل من خلال الواجهة الرسومية أو باستخدام الأمر drush config:export. في الملفات المستردة من التصدير، قم بإجراء بحث عن النص الكامل باستخدام اسم البرنامج الإضافي. قم بإزالة قسم التكوين الذي يسبب الخطأ واستورد التكوين باستخدام drush config:import

من خلال العمل مباشرة على التكوينات الموجودة في قاعدة البيانات وإزالة البرنامج المساعد

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

SELECT name FROM config WHERE data LIKE "%name-of-plugin%";

يبحث الاستعلام في جدول التكوين عن المكون الإضافي المخالف ويعيد أسماء التكوينات التي تستدعي المكون الإضافي.

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

السابق.
واجهت مشكلة مع المكوّن الإضافي filter_image_lazy_load بسبب تحديث Drupal 10 السيئ.
أعاد الاستعلام السابق هذه التكوينات:

filter.format.basic_html
filter.format.full_html
filter.format.restricted_html

باستخدام خدمة config.factory، قمت بتحميل التكوينات وتحققت من مكان وجود المشكلة. ثم يمكنك المتابعة لإزالة المكون الإضافي مثل هذا:

$configName = 'filter.format.basic_html';
$config = \Drupal::service('config.factory')->getEditable($configName);
$filters = $config->get('filters');
unset($filters['filter_image_lazy_load']);
$config->set('filters', $filters)->save()

يمكنك أن تفعل الشيء نفسه تمامًا باستخدام drush config:get filter.format.basic_html وdrush config:set filter.format.basic_html أو بضربة واحدة باستخدام drush config:edit filter.format.basic_html

بعد تنظيف التكوينات، قم بتشغيل ذاكرة التخزين المؤقت للمسح: أعد الإنشاء ويجب حل الخطأ!

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/mcale/drupal-rimuovere-un-plugin-fantasma-dal-database-9pj?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3