ホームページ > バックエンド開発 > PHPチュートリアル > Drupal: データベースからゴースト プラグインを削除する

Drupal: データベースからゴースト プラグインを削除する

WBOY
リリース: 2024-07-16 13:27:57
オリジナル
341 人が閲覧しました

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 ページで完全なログの有効化をアクティブ化できます。この構成は、問題が構成にあるのか、プラグイン名がコードにハードコーディングされているのかを判断するのに役立ちます。

ここで、問題が設定にリンクされている場合の解決方法について説明します。解決するには 2 つの方法があります。

  • 設定全体をエクスポートし、プラグイン参照を削除した後に再インポートする
  • データベースに存在する設定に直接作用し、プラグインを削除する

構成全体をエクスポートして再インポートする

Drupal コミュニティが推奨する標準的なリリース方法に従う場合、このソリューションはおそらく最もよく使用されるソリューションの 1 つです。
グラフィカル インターフェイスまたは drush config:export コマンドを使用して、設定全体をエクスポートします。エクスポートから復元されたファイルで、プラグイン名を使用して全文検索を実行します。エラーの原因となっている構成セクションを削除し、drush config:import

を使用して構成をインポートします。

データベースに存在する設定に直接作用し、プラグインを削除することによって

このソリューションは、私のように、設定全体をエクスポートして再インポートすることはできないが、サイトで「ホット」に作業する必要がある人にとって役立ちます。
エラーの原因となっている構成を見つけるには、データベースに対して次のクエリを実行します:

SELECT name FROM config WHERE data LIKE "%name-of-plugin%";
ログイン後にコピー

クエリは、構成テーブルで問題のあるプラグインを検索し、プラグインを呼び出す構成の名前を返します。

構成の名前がわかったら、プラグインの削除に進むことができます。
エラーが発生したプラグインと設定に応じて、削除方法は若干異なる場合があります。ここで、他のケースの出発点にもなる例を考慮してみましょう。


Drupal 10 のアップデートが不良だったために、filter_image_lazy_load プラグインで問題が発生しました。
前のクエリは次の構成を返しました:

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 を使用して一気に実行することもできます

構成をクリーンアップした後、drush cache:rebuild を実行すると、エラーが解決されるはずです。

以上がDrupal: データベースからゴースト プラグインを削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート