„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Drupal: Entfernen Sie ein Ghost-Plugin aus der Datenbank

Drupal: Entfernen Sie ein Ghost-Plugin aus der Datenbank

Veröffentlicht am 21.08.2024
Durchsuche:597

Drupal: Rimuovere un plugin fantasma dal database

Quelle: https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215

Es kann vorkommen, dass bei der Deinstallation eines Moduls der Vorgang nicht vollständig durchgeführt wird oder kein Entfernungsvorgang vorhanden ist. Aus diesem Grund bleibt die Datenbank „verschmutzt“.
Normalerweise ist der Fehler, der durch das erzwungene Entfernen eines Plugins verursacht wird, dieser:

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

Das Aktivieren der Konfiguration, die alle Fehlermeldungen anzeigt, kann Ihnen helfen zu verstehen, wo der Fehler vorliegt und wo Maßnahmen ergriffen werden müssen.
Sie können die vollständige Protokollaktivierung hier auf der Seite admin/config/development/logging aktivieren. Mithilfe dieser Konfiguration können Sie herausfinden, ob das Problem an Konfigurationen liegt oder ob der Plugin-Name in Ihrem Code fest codiert ist.

Jetzt werden wir uns mit der Lösung des Problems befassen, wenn es mit Konfigurationen verknüpft ist. Dazu haben wir zwei Möglichkeiten:

  • Exportieren der gesamten Konfiguration und erneutes Importieren nach Entfernen der Plugin-Referenzen
  • Direktes Eingreifen auf die in der Datenbank vorhandenen Konfigurationen und Entfernen des Plugins

Exportieren der gesamten Konfiguration und erneutes Importieren

Diese Lösung gehört höchstwahrscheinlich zu den am häufigsten verwendeten, wenn Sie der von der Drupal-Community empfohlenen Standard-Release-Methodik folgen.
Exportieren Sie die gesamte Konfiguration über die grafische Oberfläche oder mit dem Befehl drush config:export. Führen Sie in den aus dem Export wiederhergestellten Dateien eine Volltextsuche mit dem Plugin-Namen durch. Entfernen Sie den Konfigurationsabschnitt, der den Fehler verursacht, und importieren Sie die Konfiguration mit drush config:import

Indem Sie direkt auf die in der Datenbank vorhandenen Konfigurationen einwirken und das Plugin entfernen

Diese Lösung ist nützlich für diejenigen, die wie ich nicht die Möglichkeit haben, die gesamte Konfiguration zu exportieren und erneut zu importieren, sondern „heiß“ auf der Website arbeiten müssen.
Um herauszufinden, welche Konfigurationen den Fehler verursachen, können Sie diese Abfrage in der Datenbank ausführen:

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

Die Abfrage durchsucht die Konfigurationstabelle nach dem problematischen Plugin und gibt die Namen der Konfigurationen zurück, die das Plugin aufrufen.

Wenn Sie die Namen der Konfigurationen haben, können Sie mit dem Entfernen des Plugins fortfahren.
Abhängig vom Plugin und der fehlerhaften Konfiguration kann sich die Entfernungsmethode geringfügig ändern. Betrachten wir nun ein Beispiel, das auch in anderen Fällen ein guter Ausgangspunkt sein kann.

Ex.
Ich hatte ein Problem mit dem Plugin filter_image_lazy_load aufgrund eines fehlerhaften Drupal 10-Updates.
Die vorherige Abfrage hat diese Konfigurationen zurückgegeben:

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

Mit dem config.factory-Dienst habe ich die Konfigurationen geladen und überprüft, wo das Problem besteht. Anschließend können Sie das Plugin wie folgt entfernen:

$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()

Sie können genau das Gleiche mit drush config:get filter.format.basic_html und drush config:set filter.format.basic_html oder auf einen Schlag mit drush config:edit filter.format.basic_html tun

Führen Sie nach dem Bereinigen der Konfigurationen einen Drush-Cache:Rebuild aus und der Fehler sollte behoben sein!

Freigabeerklärung Dieser Artikel ist reproduziert unter: https://dev.to/mcale/drupal-rimuovere-un-plugin-fantasma-dal-database-9pj?1 Wenn es zu Verstößen gibt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3