以前「Magentoでエクステンションをアンインストールするには」で、Magentoのエクステンションをアンインストールする際の注意について書きました。
このエントリはその続編です。

エクステンションを構成するファイル群

Magentoのエクステンションは以下の要素から成り立っています。

  • グローバル設定ファイル
  • プログラムファイル
  • デザインテンプレート・レイアウトXML
  • ロケールファイル
  • スキンファイル
  • その他のJS/PHPライブラリ

すべてのエクステンションが、これらの要素をすべて持っているわけではないですが、たいていのエクステンションは

  • グローバル設定ファイル
  • プログラムファイル
  • デザインテンプレート・レイアウトXML
  • ロケールファイル

を持っています。

エクステンションをアンインストールする際に注意すべきこと

エクステンションをアンインストールする際に注意すべきことはいくつかあります。
安易にファイルを消してしまうとサイトがダウンすることもありますので、注意が必要です。

プログラムファイルを先に消してはいけない

エクステンションをアンインストールする際に、ついプログラムファイルを先に消したくなります。
ですが、これはやってはいけない作業です。

インストールの際はプログラムファイルを先にアップロードするのですが、アンインストールする際はプログラムファイルは最後に削除します。
その理由は後で説明しますが、とにかくエクステンションのアンインストール時には、プログラムファイルを先に消してはいけません。 

EAVの依存性がないかチェックが必要

EAV(Entity-Attribute-Value)というデータモデルをMagentoは採用しています。
商品やカテゴリ、顧客データにこの構造を採用しているのですが、エクステンションの中にはデータ候補や値チェックのためのプログラムを自分が使う属性に関連付けているものがあります(source_modelやbackend_modelとよびます)。

もし、何も考えずにエクステンションをアンインストールすると、Magentoは存在しないプログラムを呼びだそうとしてエラーを起こしてしまいます。
どの属性にどのsource_modelやbackend_modelが関連づいているかは、データベースを見なければならないので注意が必要です。

コンパイル機能をオフにしておく

パフォーマンスを向上させるために「コンパイル機能」というMagentoの機能を有効にしているケースがあります。
この機能は、ものすごい数があるMagentoのプログラムファイルを1個のファイルにまとめることによって、ファイル読み込みに関する無駄を省こうというものなのですが、エクステンションのインストールやアンインストール時には邪魔になります。

というのも、エクステンションをインストール・アンインストールしても、コンパイル機能が有効なままでは、Magentoはコンパイルしたファイルを参照し続けるからです。
ですからエクステンションをインストール・アンインストールする際はコンパイル機能を「必ず」オフにしておく必要があります。 

先にグローバル設定ファイルでエクステンションを無効化しておく

エクステンションをアンインストールする際は、最初にグローバル設定ファイル(app/etc/modules以下にあるXMLファイル)を編集して、エクステンションを無効にしておきます。

プログラムファイルを削除してしまうと、Magentoは存在しないファイルを読み込もうとしてエラーになってしまうので、絶対にやってはいけません。

グローバル設定ファイルでエクステンションを無効にしたら、Magentoのキャッシュをクリアします。
そうすると該当のエクステンションは無効になります。
ちなみにこのとき、前述のコンパイル機能やEAV関係については確認済みであることが前提です。

最後に

MagentoはMagento Connect経由で簡単にエクステンショをインストールすることができます。
ですが、簡単にインストールできる反面、アンインストールする際は注意が必要です。ヘタするとサイトが壊れます。

基本的に私はMagento Connectを使用して「本番環境に」エクステンションを直接インストールすることは反対です。
エクステンションを気軽にインストールして試して良いのは、テスト環境や開発環境までで、本番環境には安定したものだけを入れるべきです。
(当然といえば当然ですが) 
ただ、諸事情によって本番環境に入れていたエクステンションをアンインストールしたくなる時は必ず来ます。
そういうときは手順を押さえながらアンインストールしていかないと、サイトがダウンしてしまいます。
ご注意ください。