1
モジュールを有効にするときにテーブルを作成するカスタムモジュール用のスキーマをインストールしました。しかし、私がモジュールを無効にすると、テーブルはまだ残っています。私はアンインストールに次のコードを使用しています:モジュールが無効になっているときにhook_schema()がアンインストールされない
function sample2_install() {
if(!db_table_exists('contact')){
drupal_install_schema('sample2');
}
}
function sample2_uninstall() {
drupal_uninstall_schema('sample2');
}
テーブルがアンインストールされないのはなぜですか?
モジュールを無効にするたびにテーブルをアンインストールする必要がある場合は、どうすればいいですか?私が推測しているのは、hook_uninstallはモジュールを無効にしているので決して呼び出されないということです。 – user550265
@ user550265モジュールが無効になっているときは、テーブルを削除しないでください。これが無効化の全ポイントです。つまり、データが漏洩していないということです。アンインストールとディセーブル化の唯一の(そして唯一の)違いは、最初の(取消不能な)データが削除され、最後のデータは削除されないことです。 – berkes
モジュールが無効になっているときにすべてのデータを削除したい場合は、あなたの呼び出しにdrupal_uninstall_schemaを追加するだけです。hook_disable。私はDrupalモジュールの通常の動作ではないので、このアプローチには反対します。モジュールをwww.yoursite.com/admin/build/modules/uninstall – anschauung