1

Обновление ядра и модулей / Drupal 8

Прежде чем приступать к обновлению — всегда читайте логи на странице релиза ядра/модуля и уже на основании этой информации — принимайте решение — обновляться или нет.


Бэкап

Делаем резервную версию сайта:

drush ard

Если сайт сделан через Drupal Project, то девятый drush будет поставлен локально. Команда drush ard может не сработать.

Именно поэтому бэкап придется сделать вручную.

Выгружаем базу данных в текущую папку:

drush cr ; drush sql-dump > dump.sql

Архивируем папку с сайтом:

zip -r site.zip site

Обновление ядра

Ядро обновляется командой:

composer update drupal/core --with-dependencies -o

После обновления ядра необходимо обновить базу данных и выгрузить конфиги:

drush cr ; drush updb --entity-updates -y ; drush cex -y

Идем на страницу “Отчет о состоянии” и проверяем на наличие ошибок и смотрим на версию ядра:

/admin/reports/status

В некоторых случаях, когда нужно обновить старый сайт, нужно удалять папки core, vendor и composer.lock, предварительно сделав резервную копию:

zip -r core.zip core ; zip -r vendor.zip vendor ; zip composer.lock.zip composer.lock ; rm -rf core ; rm -rf vendor ; rm composer.lock

И обновить весь сайт:

composer update --with-dependencies -o ; drush updb --entity-updates -y ; drush cr ; drush cex -y

Будьте крайне осторожны, обновляя все на сайте. После обновления некоторых модулей — часть функционала сайта может оказаться неработоспособной.


Обновление модуля

Модуль обновляется точно также как и ядро. Единственное отличие, что вместо core необходимо прописать название модуля:

composer update drupal/modulename ; drush updb --entity-updates -y ; drush cr ; drush cex -y

Если модуль не обновился - возможно его нет в файле composer.json. Как правило, это значит, что модуль был установлен через drush.

Нужно заново установить его через composer:

composer require drupal/modulename ; drush updb --entity-updates -y ; drush cr ; drush cex -y

Все настройки модуля сохранятся.


Восстановление сайта через бэкап

Это больше актуально, если вы по каким-то причинам обновили сайт сразу на продакшине. Этого делать не рекомендуется. Лучше сделать апдейт на локалке или техническом сервере, после чего — перенести изменения на основной сайт.


drush

Если сайт сломан и нет времени разбираться, то лучше сразу развернуть бэкап.

drush arr backup.tar.gz --overwrite

Файл с бэкапом должен располагаться параллельно с папкой сайта.


Вручную

Если бэкап был сделан вручную, то просто разархивируем архив и заменяем старый на него.

Импортировать БД, которая находится в файле dump.sql можно командой:

drush sql-drop ; drush sql-cli < dump.sql

sql-drop полностью очистит БД, доступы к которой хранятся в файле:

/sites/default/settings.php

sql-cli < dump.sql импортирует БД из файла dump.sql в БД, доступы к которой хранятся в файле:

/sites/default/settings.php

Убедитесь, что файл dump.sql на месте. Иначе можно очистить текущую БД, а импортировать будет нечего.

Сбрасываем кэш:

drush cr

Возможные проблемы


Последние записи журнала

Если сайт перестал работать, вместо страницы открывается непредвиденная ошибка или страница 500, то причину можно прочитать на странице “Последние записи журнала”:

/admin/reports/dblog

Находим последнюю ошибку. Если по контексту понятно в чем проблема - исправляем. Если нет - копируем ошибку и гуглим.


Журнал в ISPmanager

Попасть в журнал ISPmanager можно по адресу:

site.ru:1500/ispmgr

Журналы ошибок находится в сайдбаре -> WWW -> Журналы.

Открываем:

site.ru.error.log

Далее, аналогично с пунктов “Последние записи журнала”


Проблемные модули

Должен предупредить, что все, что написано ниже — это проблемы, с которыми столкнулся лично я. Вполне вероятно, что я делал что-то не так, и информация не отражает действительности. Если это так — напишите мне, буду рад исправиться.


Следующие модули лучше не обновлять:

- Block tabs;

- Color field;

С этими стоит быть осторожнее:

- Webform;

- Admin Toolbar;


После апдейта может поменяться разметка, а следовательно - верстка слетит.

Для того чтобы модули не обновились после команды:

composer update --with-dependencies -o

Нужно установить конкретную версию модуля. Например мы видим, что Block Tabs требует обновления:

Обновление ядра и модулей / Drupal 8

Т.к. сейчас установлена версия 8x-1.0-alpha3, то я копирую все, после 8x- и переустанавливаю Block Tabs, чтобы он не обновлялся и был зафиксирован на этой версии:

composer require drupal/blocktabs:1.0-alpha3
Другие посты об образовательной платформе ищите по тэгу GeekBrains. Всю необходимую информацию и отзывы ищите в нашем специальном разделе. Там вы найдёте все актуальные курсы GeekBrains.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества