المصدر: 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
بعد تنظيف التكوينات، قم بتشغيل ذاكرة التخزين المؤقت للمسح: أعد الإنشاء ويجب حل الخطأ!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3