段階的な環境でモジュールを正しく削除する方法は?
一部のモジュールには、デルーチンルーチンがあります。通常、そのモジュールのデータベーステーブル、変数テーブルからの変数、およびそのモジュールによって導入されたロケールを削除します。これらのルーチンは.install、そのモジュールに存在します。 したがって、それらのモジュールが存在しないと実行できません。これが現在の手順です。私の質問は、これをより簡単に、より効果的に行うことができますか?foo_barモジュールを削除するとします。 RCSで、次の新しいリリースを準備します。 foo_barを使用または構築するすべてのcssおよびテーマオーバーライドは削除されます。 foo_barに依存するモジュールのすべてのcssおよびテーマオーバーライドは削除されます。 そのリリースを受け入れてください。運用データベースの最新のコピーを使用して、(admin / modulesからの)分散をテストします。 すべてうまくいけば、新しいコードベースを本番環境にデプロイし、foo_barとその依存関係をそこに配置します。これにより、さまざまなモジュールでアンインストールが呼び出され、データベースがクリーンアップされます。 RCS(git)で、コードが実際に削除される新しいリリースを準備します。 誤ってこれに依存していないかどうかをテストするために、それを受け入れます(一部のいモジュールまたはテーマ関数には、他のモジュールから直接ファイルが含まれます。特にCSS、JS、または画像ファイル)。 受け入れられたら、新しいリリースを実稼働環境にデプロイします。本番環境には、クリーンなデータベースとクリーンなコードベースがあります。 解決方法がわかりませんが、これには常に2つのリリースが必要です。Drupalでは、リリースにはサイトがオフラインである必要があるため、これは1つのモジュールを削除するために2回のダウンタイムを意味します。また、2つのリリース手順が必要です。これは、プロのホスティング環境では、非常に高価で、時間がかかり、イライラする可能性があります。 最初の反復でコードベースからモジュールを削除すると、アンインストールフックを実行できず、データベースに多くのリントが保持されます。いくつかのテーブルだけでなく、主に変数とロケール。モジュールをコードベースから削除しないと、コードベースが古くなった未使用のコードで成長することになります。これによりパフォーマンスのオーバーヘッドは発生しませんが、コードの維持はますます難しくなります。 これにどう対処しますか? [編集:展開が困難な手順であるという注意を追加、多くの場合]