我已经为自定义模块安装了一个模式,该模块在启用模块时创建表.但是当我禁用模块时,表仍然存在.我使用以下代码进行卸载:
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)
为什么表没有被卸载?
这里的区别在于禁用和卸载.禁用可以使模块设置随时可用.卸载会清除所有内容,直到重新启用它.
hook_uninstall()仅在完全卸载模块时调用.
hook_disable()当你只禁用它时会被调用.
drupal_uninstall_schema()如果在里面,你可以打电话hook_disable(),但我不建议这样做.这意味着当您禁用模块时,所有数据都会被删除 - 通常卸载就是您想要完全删除所有内容.