Drupal 7 で Features モジュールがアンインストールできないときの解決方法
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';
以上です。