УрокМассовое отключение и включение модулей при помощи Drush

При обновлении Друпала одним из первых шагов является отключение всех включенных модулей, которые не входят в ядро. При наличии сайта с большим количеством модулей это может привести к потере времени и нервов, которой хотелось бы избежать. Ведь те, кто уже отключал модули, знают, что перед отключением некоторых модулей, надо отключить все зависящие от них модули. И чтобы отключить зависящие, надо отключить зависящие от зависящих и так далее. А потом их ещё и включать придётся - а значит, записывать каждый выключенный модуль...

В общем, работа это скучная и неблагодарная. Поэтому и было предложено более простое решение - пользоваться Drush. А именно тремя простыми строками:

drush pm-list --type=module --status=enabled | sed '/\((.*)\)/!d;/[Cc]ore.*-.*[Rr]equired/d;s/.*(\(.*\)).*/\1/' | sort > noncoremod.txt

Собираем все включенные модули, не входящие в ядро, и записываем их имена в noncoremod.txt

drush pm-disable $(cat noncoremod.txt)

Выключаем модули, которые записаны в noncoremod.txt

drush pm-enable $(cat noncoremod.txt)

Включаем модули, которые записаны в noncoremod.txt

Кстати, говорят что отключить модули можно и одной строкой, но я не тестировал:

drush pml --no-core --type=module --status=enabled --pipe | xargs drush -y dis

Комментарии

Аватар пользователя Дмитрий
Дмитрий написал:
drush pml --no-core --type=module --status=enabled --pipe | xargs drush -y dis

Отлично сработало!

06.12.2011 10:32
Аватар пользователя Spleshka
Spleshka написал:

Спасибо за тестирование:)

06.12.2011 13:21
Аватар пользователя Rostislav
Rostislav написал:

Можно не отключать модули во время обновления Друпал. Да и во время обновления модулей тоже из отключать не обязательно. Более того когда на проекте 100 с лишним модулей, то обновление системы с отключением всего займет день. А потом еще и включить надо.

Друпал - это ПХП-скрипт, и ничем его обновление его кода от обновления других скриптов не отличается.

Сайт в offline, удаляете папки друпала, все, кроме /sites/ (ну естественно роботс, файлы верификации и т.д. в корне трогать не надо), заливаете новый друпал, запускаете update.php и все.

08.12.2011 15:03

Комментировать