如何卸载覆盖核心用户模块的模块?

时间:2010-08-29 04:15:26

标签: drupal drupal-6 drupal-modules drupal-fapi

我的一位开发人员希望覆盖核心用户模块的某些功能。他制作了核心用户模块的副本,并将其放在sites / all / modules文件夹中。功能中的某些东西搞砸了,现在我不知道如何卸载它。我尝试从sites / all / modules文件夹中删除该模块,现在它崩溃了该网站。然后我编辑系统表以确保所有条目都指向原始用户模块,但现在我遇到了用户模块和奇怪的异常问题。覆盖核心模块是不好的做法吗? 还有其他需要清理的桌子吗?删除无法通过管理控制面板删除的模块的确切方法是什么,因为在这种情况下,覆盖用户模块永远不会出现在模块列表中。

1 个答案:

答案 0 :(得分:3)

  

覆盖核心模块是不好的做法吗?

是。不要覆盖核心模块:坏事(就像你现在拥有的那样)。

  

还有其他需要清理的桌子吗?

如果不知道 user 模块版本中的代码,就无法分辨,但即使知道损坏已经完成。

  

删除无法通过管理控制面板删除的模块的确切方法是什么,因为在这种情况下,重写用户模块永远不会出现在模块列表中。

通常,如果由于某种原因无法访问模块管理页面,则运行以下命令卸载模块:

module_load_install($module);
$versions = drupal_get_schema_versions($module);
drupal_set_installed_schema_version($module, SCHEMA_UNINSTALLED);
module_invoke($module, 'uninstall');

然后删除覆盖模块的文件并重新安装原始模块。 运行卸载挂钩后,您必须删除文件,因为这些文件包含卸载过程中需要执行的代码。

但是,由于您已经覆盖了用户模块,因此您无法卸载用户模块,因为您无法卸载用户模块:所需的核心模块并不意味着被篡改。

因此,摆脱目前陷入困境的绝对方法是删除重写模块并从之前的数据库备份中恢复。