我为自定义模块安装了一个模式,该模式在启用模块时创建表。但是当我禁用模块时,表仍然存在。我使用以下代码进行卸载:
function sample2_install() {
if(!db_table_exists('contact')){
drupal_install_schema('sample2');
}
}
function sample2_uninstall() {
drupal_uninstall_schema('sample2');
}
为什么表没有被卸载?
答案 0 :(得分:6)
这里的区别在于禁用和卸载。禁用可以使模块设置随时可用。卸载会清除所有内容,直到重新启用它。
hook_uninstall()
仅在您完全卸载模块时被调用
只有在禁用它时才会调用hook_disable()
。
如果在drupal_uninstall_schema()
内,您可以致电hook_disable()
,但我不建议这样做。这意味着当您禁用模块时,所有数据都会被删除 - 通常卸载就是您想要完全删除所有内容的时候。