禁用模块时,不会卸载hook_schema()

use*_*265 2 drupal

我已经为自定义模块安装了一个模式,该模块在启用模块时创建表.但是当我禁用模块时,表仍然存在.我使用以下代码进行卸载:

function sample2_install() {
  if(!db_table_exists('contact')){
    drupal_install_schema('sample2');
  }
}

function sample2_uninstall() {
  drupal_uninstall_schema('sample2');
}
Run Code Online (Sandbox Code Playgroud)

为什么表没有被卸载?

ans*_*ung 6

这里的区别在于禁用和卸载.禁用可以使模块设置随时可用.卸载会清除所有内容,直到重新启用它.

hook_uninstall()仅在完全卸载模块时调用.
hook_disable()当你只禁用它时会被调用.

drupal_uninstall_schema()如果在里面,你可以打电话hook_disable(),但我不建议这样做.这意味着当您禁用模块时,所有数据都会被删除 - 通常卸载就是您想要完全删除所有内容.