Объясните N-правила в обновлении крючка N


На hook_update_N() в документации говорится:

Mymodule_update_7000(): это требуется обновление для ТО mymodule данным работать с Drupal API ядра 7.х , когда обновление ядра Drupal API-интерфейс 6.х.

Mymodule_update_7200(): Это первое обновление для подготовки базы данных к запуску mymodule 7.x-2.. Пользователи могут напрямую обновлять с 6.x-2. до 7.x-2.* и они получают все 70xx и обновления 72xx, но не 71xx обновления, потому что они находятся только в ветке 7.x-1.x.

Действительно ли обязательно определять крючок обновления 7000? Я видел некоторые внесенные обновления модулей, которые начинаются с 7300, когда версия модуля для Drupal 7 составляет 7.x-3.x.

Я немного сбит с толку, потому что я прочитал перед UPGRADE.txt файл для ядра Drupal 7, в котором говорится:

ОБНОВЛЕНИЕ ОСНОВНОЙ ВЕРСИИ
Для обновления с предыдущей основной версии Drupal для Drupal 7.x, следуя инструкциям в разделе ВВЕДЕНИЕ в верхней части этого файла:

  1. В дополнение к обновлению до последней доступной версии ядра Drupal 6.x, вы также должны обновить все внесенные вами модули для Drupal до их последних версий Drupal 6.x.

Для меня это означает, что пользователи не могут напрямую обновляться с 6.x-2.x до 7.x-2.x, если только модуль 6.x-2.x не был последним в версиях Drupal 6.x. Это правильно?

Как насчет возможных обновлений базы данных, определенных ветвью 7.x-1.x? Нужно ли сообщать о них в обновлениях 70xx?

Может ли модуль версии 7.2.x сохранять любые другие обновления (например, 60xx, 71xx) или он должен быть чистым и определенным только обновления 70xx и 72xx?

 2
Author: kiamlaluno, 2016-01-02

1 answers

Основываясь на документации, обновления 70xx необходимы только в том случае, если есть обновления с Drupal 6.x до Drupal 7.x, которые необходимы для любой ветви модуля Drupal 7 (например, 7.x-1.x, 7.x-2.x, 7.x-3.x). Если это не так, то вам не нужно использовать 70xx в качестве номеров обновлений.

Как сказано в документации, обновления под номером 72xx позволяют обновлять модуль с версии 6.x-2-x до версии 7.x-2.x, но не с версии 6.x-3.x. Это, как правило, не проблема, так как сопровождающие проекта обычно создают версию 7.x-3.x вместе с версией 6.x-3.x.

Как сообщается в документации, обновления под номером 71xx предназначены для обновления с версии 6.x-1.x до 7.x-1.x; обновления под номером 70xx предназначены для обновлений с Drupal 6 в любую ветвь модуля для Drupal 7.x. Вы не копируете обновления 70xx в обновлениях 71xx, так как они уже выполнены для ветви 7.x-1.x.

Что касается обновлений, которые необходимо сохранить, в документации говорится:

А хорошее эмпирическое правило - удалять обновления старше двух основных выпусков Drupal.

Таким образом, обновления для версии 7.x-1.x по-прежнему должны сохраняться для версии 7.x-2.x.

Имейте в виду, что, насколько я помню, то, что описано в документации о том, какие обновления запускаются при обновлении с Drupal 6 на Drupal 7, не описывает, что на самом деле делает код. Насколько я помню, код Drupal просто запускает любые обновления выше, чем последнее выполненное обновление. Например, если модуль последний время выполнения обновления 6123, Drupal запустит любое обновление, превышающее это число, например 7000, 7100 и 7200, если они определены.

 2
Author: kiamlaluno, 2016-01-04 21:44:08