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

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Обновление ядра Drupal и модулей
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

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

Drupal использует Composer для управления зависимостями — обновление ядра и модулей происходит через него. Без Composer (установка вручную) — переходите на Composer-based setup, иначе каждое обновление будет ручной операцией.

Подготовка

# Создать бэкап БД
drush sql:dump --result-file=/backups/drupal-$(date +%Y%m%d).sql --gzip

# Бэкап файлов (если нет автоматического)
tar czf /backups/files-$(date +%Y%m%d).tar.gz /var/www/site/web/sites/default/files

# Включить режим обслуживания
drush state:set system.maintenance_mode 1 --input-format=integer
drush cr

Проверка доступных обновлений

# Показать все доступные обновления
composer outdated "drupal/*"

# Только обновления безопасности
drush pm:security

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

# Обновить до последней совместимой версии
composer update drupal/core-recommended drupal/core-composer-scaffold --with-all-dependencies

# Или до конкретной версии
composer require drupal/core-recommended:^10.3 --update-with-all-dependencies

# Применить обновления БД
drush updatedb

# Обновить экспортированную конфигурацию
drush config:export
git diff config/sync/

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

# Обновить все модули разом
composer update "drupal/*" --with-all-dependencies

# Обновить конкретный модуль
composer require drupal/views:^3.14

# После обновления модулей
drush updatedb
drush cr

Major-версии: Drupal 9 → 10 → 11

Для major-обновления используйте Upgrade Status:

composer require drupal/upgrade_status
drush en upgrade_status -y
drush upgrade_status:analyze

Upgrade Status анализирует все модули на совместимость с целевой версией, показывает deprecated функции в кастомном коде.

# Drupal 9 → 10
composer require drupal/core-recommended:^10 --update-with-all-dependencies

# Устаревшие API: проверить через Rector
composer require --dev palantirnet/drupal-rector
vendor/bin/rector process web/modules/custom

Обновление contrib модулей с breaking changes

Некоторые модули требуют ручных действий при обновлении:

# Проверить CHANGELOG модуля
cat vendor/drupal/webform/CHANGELOG.md | head -100

# Проверить hook_update_N функции
drush php-eval "print_r(drupal_get_schema_versions('webform'));"

# Применить только обновления конкретного модуля
drush updatedb --module=webform

Тестирование после обновления

# Восстановить нормальный режим
drush state:set system.maintenance_mode 0 --input-format=integer
drush cr

# Запустить тесты (если есть)
./vendor/bin/phpunit web/modules/custom

# Проверить логи на ошибки
drush watchdog:show --severity=Error --count=50

CI/CD для автоматических обновлений

# .github/workflows/security-updates.yml
name: Security Updates
on:
  schedule:
    - cron: '0 9 * * 1'  # каждый понедельник

jobs:
  update:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Check security updates
        run: composer audit
      - name: Apply updates
        run: composer update --with-all-dependencies
      - name: Create PR if changes
        uses: peter-evans/create-pull-request@v6

Сроки

Плановое обновление ядра и модулей Drupal с бэкапом и тестированием — 2–4 часа. Major-обновление с анализом совместимости — 1–3 дня.