Drupal 7 で Features モジュールがアンインストールできないときの解決方法

Drupal 7

Drupal 7 で Features モジュールをアンインストールしようとすると以下のエラーが出てアンインストールができない場合があります。

エラー

Fatal error: Call to undefined function features_get_components()

原因

原因は、アンインストールの処理内で Features モジュールの関数 features_get_components() が使われていることです。 アンインストールの処理 features_uninstall() が走るときにはすでに Features モジュールの関数群はなくなっているために発生するようです。

対処方法

features_uninstall() が走る前に features_get_components() が定義されている状態にすれば OK です。 具体的には features.module ファイルを features.install 内で読み込みます。

こちらは本記事執筆時点で既知のバグで、パッチもすでに作成されています。関連リンク内のパッチ #4 をあてれば修正することができます。 パッチをあてた経験がない方は features.install 内の以下の行を手作業で変更するとよいでしょう。

変更前:

variable_del('features_lock_mode');

変更後:

variable_del('features_lock_mode');
require_once 'features.module';

以上です。

参考


アバター
後藤隼人 ( ごとうはやと )

Python や PHP を使ってソフトウェア開発やウェブ制作をしています。詳しくはこちら