Иногда требуется зафиксировать конкретную версию установленного модуля. К примеру, есть некая версия некоего модуля, к которой есть некий патч, который не подходит к более новым версиям данного модуля. В данном случае как раз нам и пригодится «заморозка» установленного модуля, чтобы он не перезаписался при обновлении.
Внимание: Данная информация актуальная для CMS Drupal версии 7.
В случае с обновлением через веб достаточно установить модуль Disable Updates и выставить настройки в параметрах модуля путём расстановки необходимых чекбоксов, как на приведённом ниже скриншоте (изображение с официальной страницы модуля):
В случае, если вы используете для управления Drupal-ом удобнейшую программу drush всё ещё проще. Для этого необходимо выполнить следующую команду, находясь в директории с вашим сайтом на Drupal:
1 |
drush pm-updatestatus --lock=<module> --lock-message="<lock message>" |
где вместо <module> подставьте название модуля, который необходимо «заморозить», а вместо <lock message> — комментарий к «заморозке» (данный параметр необязателен). К примеру, необходимо запретить обновление модуля date с комментарием «Temporary disabled at 13.06.2016». Для этого необходимо выполнить следующую команду:
1 |
drush pm-updatestatus --lock=date --lock-message="Temporay disabled at 13.06.2016" |
После выполнения данной команды в папке с указанным модулем создастся файл с названием .drush-lock-update, в котором будет указан текст вашего комментария «заморозки» (если вы не укажете данный параметр, то создастся стандартный комментарий). Всё, после ввода данной команды при обновлении через drush данные модули обновляться не будут.
Внимание: «заморозка» при помощи модуля Disable Updates не распространяется на обновление при помощи Drush и наоборот. Т.е. если вы обновляете и через веб-интерфейс, и через Drush — то «заморозку» модулей нужно производить в обоих вариантах, что несколько неудобно. Поэтому рекомендуется использовать один метод обновлений — конечно же при помощи Drush. 🙂
Для снятия «заморозки» достаточно выполнить команду в таком формате:
1 |
drush pm-updatestatus --unlock=<module> |
Т.е. для снятия «заморозки» с модуля date нужно выполнить следующее:
1 |
drush pm-updatestatus --unlock=date |
Или же можно просто удалить из папки с модулем файл .drush-lock-update.
Также можно через запятую указывать более одного модуля для «заморозки» (или снятия «заморозки»). Например, нужно «заморозить» модули date и entity. Для этого необходимо выполнить следующее (заодно напомню вам сокращённую запись, вместо команды длинной команды pm-updatestatus можно писать просто up):
1 |
drush up --lock=date,entity |
«Разморозка» производится по аналогии с вышеописанным примером:
1 |
drush up --lock=date,entity |
На этом всё, надеюсь, данная информация будет вам полезной.