
Обновление Drupal требует точного соблюдения последовательности действий для сохранения работоспособности сайта и безопасности данных. Версия ядра, модули и темы должны соответствовать минимальным требованиям новой версии: ядро Drupal 10.2, модули не ниже версии 10.x, темы адаптированы под PHP 8.1 и выше.
Первым шагом рекомендуется создать полную резервную копию файлов сайта и базы данных. Использование Drush позволяет экспортировать конфигурацию командой drush config:export, а для базы данных подойдет drush sql-dump —result-file=backup.sql. Это гарантирует возможность быстрого восстановления при ошибках обновления.
Перед обновлением ядра важно проверить совместимость установленных модулей. Для этого используйте Upgrade Status, который сканирует сайт и выдает список несовместимых расширений. Несовместимые модули следует либо обновить, либо временно отключить.
Сама процедура обновления включает выполнение команды drush pm-update после перевода сайта в режим обслуживания. После завершения обновления проверяются журналы ошибок и работоспособность ключевых функций: авторизация пользователей, работа форм, интеграции с внешними API.
Завершающий этап – очистка кеша командой drush cr и возвращение сайта в обычный режим. Рекомендуется провести функциональное тестирование всех страниц и форм, чтобы убедиться, что обновление прошло без потери данных и нарушений функциональности.
Проверка текущей версии Drupal и совместимости модулей

Для точного определения версии Drupal откройте административную панель и перейдите в раздел Отчёт о состоянии (Reports → Status report). В строке Drupal version отображается текущая версия ядра. Альтернативно, выполните команду drush status через терминал; значение Drupal version покажет установленную версию.
Перед обновлением необходимо проверить совместимость всех модулей. Составьте список активных модулей с указанием их версии через drush pm-list —status=enabled. Для каждого модуля сверяйтесь с официальной документацией или на Drupal.org, используя фильтр совместимости с целевой версией ядра.
Обратите внимание на модули с пометкой contributed и custom. Contributed-модули обновляются через интерфейс Extend → Update или с помощью Composer. Для custom-модулей потребуется ручная проверка кода на использование устаревших функций ядра.
В случае модулей с отсутствующей поддержкой для новой версии Drupal рассмотрите два пути: поиск аналогичного поддерживаемого модуля или временная деактивация перед обновлением ядра. Все изменения фиксируйте в резервной копии базы данных и файловой структуры.
После проверки версий и совместимости выполните тестовое обновление на локальной копии сайта. Это выявит конфликты между ядром и модулями до внесения изменений на рабочем сервере.
Создание полной резервной копии сайта и базы данных

Перед обновлением Drupal крайне важно создать полную резервную копию сайта, включающую файлы и базу данных. Это позволит восстановить сайт в случае ошибок обновления или несовместимости модулей.
Для резервного копирования файлов сайта рекомендуется использовать SSH-доступ к серверу и команду tar:
tar -czvf site-backup-$(date +%F).tar.gz /путь/к/вашему/сайту
Эта команда создаст архив с текущей датой, включая все ядро Drupal, модули, темы и загруженные файлы.
Для базы данных MySQL или MariaDB используйте команду:
mysqldump -u <имя_пользователя> -p<пароль> <имя_базы> > db-backup-$(date +%F).sql
Файл SQL сохраняет все таблицы, структуру и данные. Рекомендуется проверять размер архива и при необходимости сжимать его с помощью gzip.
Для удобства восстановления можно организовать таблицу с описанием резервных копий:
| Дата создания | Тип резервной копии | Имя файла | Размер | Комментарий |
|---|---|---|---|---|
| 2025-09-07 | Файлы сайта | site-backup-2025-09-07.tar.gz | 1.2 GB | Полная копия перед обновлением Drupal 10.3 |
| 2025-09-07 | База данных | db-backup-2025-09-07.sql.gz | 350 MB | Содержит все таблицы и данные сайта |
После создания резервной копии рекомендуется сохранять её на отдельном сервере или в облачном хранилище, чтобы исключить потерю данных при сбое основного сервера.
Также стоит протестировать восстановление на локальной копии, чтобы убедиться, что резервные файлы работают корректно.
Отключение кастомных модулей и тем перед обновлением

Перед началом обновления Drupal необходимо деактивировать все кастомные модули и темы. Это предотвращает конфликты с ядром и сторонними расширениями. Сначала выполните команду `drush pm-list —type=module —status=enabled` для получения списка активных модулей. Идентифицируйте модули, разработанные специально для вашего сайта, и отключите их через `drush pm-disable [module_name]`.
Для тем используйте `drush theme:info` или проверьте конфигурацию через админ-панель в разделе «Внешний вид». Активную тему замените стандартной темой, например Bartik или Olivero, чтобы интерфейс оставался доступным после деактивации кастомной темы.
После отключения всех кастомных компонентов выполните проверку зависимостей через `drush pm:security` и убедитесь, что ни один из модулей не вызывает ошибок. Сохраните копию конфигурации командой `drush config:export` перед обновлением ядра.
Если модуль использует пользовательские таблицы в базе данных, убедитесь, что они не блокируют процесс обновления. Для этого временно удалите хук `hook_update_N` или создайте резервную копию соответствующих таблиц. Аналогично поступают с кастомными темами, удаляя нестандартные CSS и JS, которые могут конфликтовать с новым ядром.
Только после полной деактивации кастомных модулей и тем переходите к обновлению ядра и стандартных расширений. Это минимизирует вероятность ошибок, связанных с несовместимостью кода и структуры базы данных.
Обновление ядра Drupal через Composer или вручную
Обновление ядра Drupal критически важно для безопасности и стабильности сайта. Выбор метода зависит от структуры проекта и наличия Composer.
Через Composer
- Создайте резервную копию базы данных и файлов сайта.
- Перейдите в корневую директорию проекта, где расположен файл
composer.json. - Проверьте текущую версию ядра командой:
composer show drupal/core --all. - Обновите ядро до нужной версии:
composer require drupal/core-recommended:^X.Y --update-with-dependencies, гдеX.Y– версия Drupal. - Обновите пакеты и зависимости:
composer update drupal/core-composer-scaffold drupal/core-project-message --with-dependencies. - Примените обновления базы данных:
drush updatedbили через административный интерфейс/update.php. - Очистите кеш:
drush cr. - Проверьте функциональность ключевых модулей и тем, чтобы убедиться в совместимости.
Вручную

- Создайте резервную копию файлов и базы данных.
- Скачайте актуальную версию ядра Drupal с официального сайта.
- Временно отключите сайт в режиме обслуживания через
/admin/config/development/maintenance. - Удалите из корня сайта все папки и файлы ядра, кроме
sitesиvendor(если есть Composer). - Разархивируйте новые файлы ядра в корневую директорию.
- Проверьте, чтобы файлы
settings.phpи папкаsitesостались без изменений. - Запустите обновление базы данных через
/update.phpилиdrush updatedb. - Очистите кеш и проверьте работу всех модулей и тем.
Для проектов на Composer рекомендуется использовать именно этот метод – он гарантирует корректное обновление зависимостей и совместимость модулей. Ручное обновление подходит для небольших сайтов без Composer или когда требуется прямое вмешательство в файловую структуру.
Проверка и обновление contrib-модулей и тем

Перед обновлением ядра Drupal важно убедиться, что все contrib-модули и темы совместимы с новой версией. Несоответствие может вызвать ошибки и сбои сайта.
Алгоритм действий:
- Создайте резервную копию сайта и базы данных. Без этого откат после неудачного обновления будет невозможен.
- Перейдите в раздел Обновления в административной панели или используйте команду Drush
drush pm:securityдля проверки модулей с известными уязвимостями. - Проверьте совместимость каждой contrib-компоненты с целевой версией Drupal на drupal.org/project_module. Особое внимание уделяйте модулям с активной интеграцией в ключевые функции сайта (например, Views, Pathauto, Webform).
- Обновляйте модули и темы поэтапно. Используйте Drush:
drush pm-updateилиcomposer update drupal/в зависимости от метода установки. - После обновления проверяйте функционал сайта на тестовом окружении: корректность отображения страниц, работу форм, работу кэширования и интеграций.
- Удаляйте устаревшие или неиспользуемые модули. Они увеличивают риск уязвимостей и замедляют сайт.
Рекомендации для контроля обновлений:
- Включите уведомления безопасности в админке Drupal и настройте автоматическое получение обновлений через Drush или Composer.
- Фиксируйте версии модулей в
composer.json, чтобы избежать несовместимости при последующих апдейтах. - Регулярно проверяйте ChangeLog для каждого модуля: иногда изменения в API требуют корректировок пользовательского кода.
- Для крупных обновлений создавайте отдельную ветку в системе контроля версий и проводите тестирование до релиза на продакшн.
Тестирование сайта на локальном или staging-сервере
Перед обновлением Drupal создайте полную копию сайта на локальном компьютере или на отдельном staging-сервере. Для локальной среды используйте инструменты типа Drupal VM, DDEV или Lando, обеспечивающие идентичную конфигурацию PHP, базы данных и веб-сервера.
Импортируйте базу данных и файлы сайта в тестовую среду. Проверьте, что settings.php содержит правильные параметры подключения к локальной базе данных и корректные пути к директориям files и private.
Перед запуском обновления отключите на staging-сервере кэширование через Performance settings и убедитесь, что модуль Update Manager активен. Используйте команду drush status, чтобы убедиться, что все пути и версии модулей совпадают с рабочей средой.
Запустите обновление ядра и модулей с помощью Drush или Composer в локальной среде. После обновления проверьте работу всех пользовательских модулей и тем оформления. Особое внимание уделите формам, пользовательским блокам и интеграциям с внешними сервисами.
Используйте Watchdog logs и devel module для выявления ошибок и предупреждений. Протестируйте ключевые функции: авторизацию пользователей, отправку форм, загрузку файлов, маршруты меню. Сравните результаты с текущим рабочим сайтом, чтобы выявить расхождения.
Если обновление прошло успешно и функционал сохранен, подготовьте инструкцию для деплоя на рабочий сервер, включающую перенос базы данных, файлов и отключение кэширования. Это снизит риск ошибок при финальном обновлении сайта.
Внесение исправлений и повторная активация кастомных модулей
После обновления ядра Drupal необходимо проверить совместимость всех кастомных модулей. Для этого включите режим Devel и используйте drush status для выявления ошибок загрузки модулей.
Первый шаг – обновление файлов модуля. Сверьте hook_update_N() в каждом модуле с текущей схемой базы данных. Если есть расхождения, создайте новую функцию обновления с корректным порядковым номером, чтобы избежать конфликтов с предыдущими версиями.
Проверяйте использование устаревших API. Например, функции db_query() и theme() в Drupal 9 и выше заменяются на Drupal::database()->query() и #theme в render-массиве. Исправьте вызовы, чтобы модуль корректно работал с новым ядром.
После внесения исправлений используйте drush cr для очистки кэша и drush updb для применения изменений схемы базы данных. Проверяйте сообщения об ошибках в Reports → Recent log messages и устраняйте предупреждения о несовместимости.
Для повторной активации модулей применяйте drush en module_name -y по одному модулю. Начните с зависимых модулей ядра, затем включайте кастомные, чтобы избежать конфликтов зависимостей.
После активации проведите тестирование функциональности. Создайте минимальные тестовые сценарии для каждой ключевой функции модуля: CRUD-операции, формы, AJAX-взаимодействия. Если модуль использует события или хук hook_form_alter(), убедитесь, что изменения форм корректно применяются.
Наконец, сохраните исправленные версии модулей в систему контроля версий с тегом, соответствующим версии Drupal. Это обеспечит возможность отката в случае непредвиденных ошибок после повторной активации.
Вопрос-ответ:
Как подготовить сайт на Drupal к обновлению без риска потери данных?
Перед обновлением важно создать полную резервную копию базы данных и всех файлов сайта. Рекомендуется проверить совместимость модулей с новой версией, отключить кэш и перевести сайт в режим обслуживания. Такой подход позволит минимизировать вероятность сбоев и сохранить текущие настройки.
Какие шаги включает процесс обновления ядра Drupal?
Процесс обновления ядра состоит из нескольких этапов: 1) скачивание новой версии, 2) замена файлов ядра, 3) обновление базы данных через административный интерфейс, 4) проверка работоспособности сайта. После этих действий рекомендуется очистить кэш и проверить, корректно ли функционируют модули и темы.
Что делать, если после обновления некоторые модули перестали работать?
В первую очередь стоит убедиться, что используемые модули совместимы с новой версией Drupal. Если проблемы сохраняются, можно временно отключить проблемные модули и поискать обновления или альтернативные версии. Иногда помогает восстановление резервной копии и повторное обновление с отключением несовместимых модулей.
Можно ли обновлять Drupal на живом сайте или лучше использовать тестовый сервер?
Обновление на тестовом сервере считается безопаснее: вы можете проверить все изменения и убедиться, что сайт работает корректно. На живом сайте обновление без предварительного тестирования увеличивает риск сбоев и временной недоступности. После успешного тестирования изменения можно переносить на основной сервер.
