首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到钩子后更新

找不到钩子后更新
EN

Drupal用户
提问于 2023-03-16 15:10:27
回答 2查看 97关注 0票数 1

drush updb命令有问题,它找不到自定义模块的钩子更新。我注意到模块安装将模块的名称字符串保存在数据库、表"key_value“和BLOB文件中。

表key_value:

BLOB文件:

我在mymodule.post_update.php上的更新:

由于它存在于数据库中,因此该命令似乎认为在不执行钩子时会执行它。有没有什么办法来解决这个问题?我的网站在9.5.4里。

EN

回答 2

Drupal用户

发布于 2023-03-16 20:16:27

听起来你想在新安装的模块上运行更新钩子。那么您应该使用部署钩子。其他更新和更新后挂钩,他们也运行新安装的模块。唯一的要求是在您的部署例程中运行drush deploy:hook,或者只是从drush updb切换到drush deploy,后者已经包含了drush updbdrush deploy:hook,并且按正确的顺序运行一切。

(drush cim将启用模块,最终drush deploy:hook将选择部署钩子。)

创建一个文件MYMODULE.deploy.php,并在其中放置MYMODULE_deploy_NAME(&$sandbox)和go。

票数 1
EN

Drupal用户

发布于 2023-03-16 16:14:15

existing_updates中列出的任何更新函数都已被执行,Drupal不会再次执行它(更新后的钩子通常对内容进行操作,您不希望无意中运行这类更新)。

如果您确信执行该函数的内容是解决问题的正确方法,那么只需将函数名更改为以前从未执行过的内容。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/315086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档