Зачем отключать неосновные модули при обновлении ядра?


У меня, кажется, несколько руководств по обновлению говорят вам отключить все неосновные модули перед выполнением обновления. В чем причина этого? Я не очень хорошо знаком с областью обновления ядра, но не вижу никакой реальной веской причины. Есть ли что-то серьезное, чем я рискую, если не сделаю этого?

Я могу понять рассуждения, если мы делаем обновление между основными версиями (6 - >7). Но при выполнении незначительного обновления (7.10 -> 7.12) у меня возникает вопрос.

 4
Author: kiamlaluno, 2012-02-16

3 answers

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

 3
Author: drmonkeyninja, 2012-02-16 17:00:04

При обновлении с 6 до 7 ни один из модулей не должен использовать таблицу сеансов (в *hook_boot* или *hook_init*), иначе это приведет к фатальной ошибке. Если у вас простой веб-сайт, вы можете попробовать обновить Drupal, но в случае каких-либо фатальных ошибок вам следует отключить их.

Пожалуйста, ознакомьтесь с общей проблемой, которая возникает, когда некоторые люди пытаются выполнить обновление с помощью модулей contrib:

Обновление D6.20 до D7 завершается ошибкой с исключением PDO


Вот пример команда для отключения всех непрофильных модулей и тем:

echo 'UPDATE system SET status = 0 WHERE filename NOT LIKE "themes%" AND filename NOT LIKE "modules%";' | `drush sql-connect`

Также вы можете попробовать очистить кэши:

echo "DELETE FROM cache`drush sql-connect`
echo "DELETE FROM cache_bootstrap" | `drush sql-connect`

И удалите все включенные файлы из settings.php файл, такой как memcached и т.д.

 0
Author: kenorb, 2013-11-04 17:19:06

Мое предложение таково: не надо. Это совет эпохи Drupal 6, и с тех пор мир изменился.

В Drupal 7 многие модули не могут быть отключены должным образом, или существует опасность, что они не будут работать должным образом при повторном включении. Любой модуль, предоставляющий типы полей/сущностей, является подозрительным, например, Commerce. Вот почему Drupal 8 полностью удалил концепцию отключенных модулей.

(Конечно, это касается только точечных обновлений, а не основных обновлений версий, таких как 6 -> 7)

 0
Author: Bojan Zivanovic, 2013-11-04 18:52:49