「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Drupal: データベースからゴースト プラグインを削除する

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

2024 年 8 月 21 日に公開
ブラウズ:334

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

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

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

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

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 を実行すると、エラーが解決されるはずです。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/mcale/drupal-rimuovere-un-plugin-fantasma-dal-database-9pj?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3