Drupal 7: Вызывается ли hook update N(), когда модуль обновляется между второстепенными версиями?


Допустим, я пытаюсь обновить модуль с версии 7.03 до 7.04, а в версии 7.04 есть функция mymodule_update_7704(), которая обновляет схему модуля.

Если я перейду на страницу модулей и обновлю mymodule, будет ли запущена функция mymodule_update_7704() и обновит схему модуля?

Кроме того, если вышеизложенное верно и mymodule_update_7704() запускается, должен ли пользователь нажать, чтобы запустить обновление, или оно отключено?

Извините, если это вопрос кажется элементарным, я просто не могу проверить это, не выпустив свой модуль, и я бы предпочел сначала узнать, прежде чем выпускать.

Author: Joseph Hovik, 2017-04-26

1 answers

hook_update_N вызывается только тогда, когда:

  • Процесс обновления запущен (через /update.php, друш и т.д.).
  • Текущая версия схемы для модуля меньше, чем версия схемы крючка обновления (N в hook_update_N).

При посещении страницы администратора модулей обновления не запускаются, процесс всегда будет вызываться администратором (или, возможно, автоматизированной задачей, но никогда автоматически/автоматически самим Drupal).

В качестве отступления (на случай, если дело дойдет до укусите вас в какой-то момент), при установке модуля не вызываются крючки обновления, только для уже установленных модулей во время процесса обновления. Крючки обновления предназначены только для ускорения установки старых версий с тем, что в любом случае предлагает текущая версия при установке.

Кроме того, нумерация вашей схемы выглядит немного подозрительно, если вы хотите придерживаться общепринятой практики; ознакомьтесь с hook_update_N документы для получения дополнительной информации, но ваша нумерация, вероятно, должна быть в 7100-е на данный момент.

 0
Author: Clive, 2017-04-26 21:30:58