Drupal 7: Вызывается ли hook update N(), когда модуль обновляется между второстепенными версиями?
Допустим, я пытаюсь обновить модуль с версии 7.03 до 7.04, а в версии 7.04 есть функция mymodule_update_7704(), которая обновляет схему модуля.
Если я перейду на страницу модулей и обновлю mymodule, будет ли запущена функция mymodule_update_7704() и обновит схему модуля?
Кроме того, если вышеизложенное верно и mymodule_update_7704() запускается, должен ли пользователь нажать, чтобы запустить обновление, или оно отключено?
Извините, если это вопрос кажется элементарным, я просто не могу проверить это, не выпустив свой модуль, и я бы предпочел сначала узнать, прежде чем выпускать.
1 answers
hook_update_N
вызывается только тогда, когда:
- Процесс обновления запущен (через /update.php, друш и т.д.).
- Текущая версия схемы для модуля меньше, чем версия схемы крючка обновления (
N
вhook_update_N
).
При посещении страницы администратора модулей обновления не запускаются, процесс всегда будет вызываться администратором (или, возможно, автоматизированной задачей, но никогда автоматически/автоматически самим Drupal).
В качестве отступления (на случай, если дело дойдет до укусите вас в какой-то момент), при установке модуля не вызываются крючки обновления, только для уже установленных модулей во время процесса обновления. Крючки обновления предназначены только для ускорения установки старых версий с тем, что в любом случае предлагает текущая версия при установке.
Кроме того, нумерация вашей схемы выглядит немного подозрительно, если вы хотите придерживаться общепринятой практики; ознакомьтесь с hook_update_N
документы для получения дополнительной информации, но ваша нумерация, вероятно, должна быть в 7100-е на данный момент.