Drupal 8.6 Commerce:在不带module_uninstall()的.install文件中,从数据库中删除表。为什么?

时间:2019-02-06 12:39:52

标签: drupal module drupal-8

当卸载模块时,为什么要从 .install 文件中没有Object.keys功能的数据库中删除所有表。

此外,为什么要创建没有module_uninstall()函数的表 仅 .install 文件代码:

module_install()

此外,如果 .install 文件中不存在条件,请创建表。

1 个答案:

答案 0 :(得分:0)

这是它的行为方式,在安装或卸载模块时,将在数据库中创建或从数据库中创建hook_schema中定义的表,如果要执行其他操作,则应使用hook_install()或hook_uninstall()挂钩。

仅假设卸载模块时应删除数据库架构,安装后再返回数据库架构,如果您考虑一下,这是很合理的。

https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Database%21database.api.php/function/hook_schema/8.7.x

  

“此钩子声明的表将在以下情况下自动创建   该模块已安装,并且在卸载模块时已卸下。   这发生在调用hook_install()之前和之后   hook_uninstall()分别被调用。”