web-dev-qa-db-ja.com

コンテンツを含むモジュールを強制的にアンインストールするにはどうすればよいですか?

Fieldモジュールをアンインストールしたいのですが、このモジュールはアンインストールできません。試したところ、以下のメッセージが表示されました。

ノードやユーザーなどのエンティティにフィールドを追加するためのフィールドAPI。マシン名:フィールドバージョン:8.0.6必須:TextNodeAdmin ToolbarAdmin Toolbar Extra ToolsFileOptionsAggregator(disabled)ImageAccelerated Mobile Pages(AMP)(disabled)Custom BlockBook(disabled)Text EditorCKEditorCommentInterface TranslationConfiguration Translation(disabled)

Nodeモジュール、Viewsモジュール、またはコンテンツが含まれているエンティティなど、内部に依存関係またはコンテンツがあるモジュールを強制的にアンインストールするにはどうすればよいですか?

\Drupal::service('module_installer')->uninstall(['admin_toolbar']);を使用してみましたが、サイトが破損しました。

2
Sugandh Khanna

たとえば、カスタムコンテンツエンティティタイプを作成し、それにコンテンツを追加しました。これで、すべてのコンテンツを削除するか、モジュール固有のdbテーブルを切り捨てるまで Sugandh Khanna まで、カスタムモジュールをアンインストールできません。

残念ながら、Drupal 8では、Drupal 7.でできるように、モジュールを無効にすることはできません。

Drupal 7では、最初にモジュールを無効にする必要があります。つまり、モジュールに関連するすべてのコードがDBに残ります。次に、必要に応じて、アンインストールしてDBからすべてを削除します。

Drupal 8では、モジュールをアンインストールするのが唯一のオプションです。つまり、データベースからモジュールのすべてのトレースを破棄する必要があります。モジュールを無効にするだけではできません。

また、フラグ をアンインストールするには(ここのコメントにあるように) 、まず依存関係をアンインストールする必要があり、それから初めてフラグをアンインストールできるようになります。モジュールXがフラグに依存していて、どういうわけかフラグを削除した場合、モジュールXは完全に台無しになり、Xは役に立たなくなり、モジュールXにはフラグがなければ何もできません。したがって、最初にモジュールXを削除する必要があり、それから初めてフラグを削除できるようになります。

詳細情報: Drupal 8のモジュールをアンインストールできないのはなぜですか?(説明)

問題: 無効化されたモジュールは修復できないほど壊れているため、「無効化」機能を削除する必要があります

2
No Sssweat