как обновить drupal 8

Миграция на Drupal 10

Как обновить Drupal 7 и Drupal 8 до Drupal 10

Drupal 10 вышел в конце 2022 года. Разработчики пообещали, что новая версия будет более безопасной и удобной для пользователей, но проверить это вы сможете только после того, как обновите старую версию Drupal CMS, на которой работает ваш сайт.

В этом гайде мы подробно расскажем, как мигрировать ваш сайт с Drupal 7 или Drupal 8 на Drupal 10.

Миграция в Drupal

Миграция в общем — это перевод данных из одного источника в другой. Источником может послужить база данных (или БД) или файлы типа CSV и XML.

миграция в drupal

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

  1. Получение данных. Система запросов позволяет получить данные из исходной базы.
  2. Сопоставление. На этом этапе нужно установить, какое поле из исходной базы должно перейти в какое поле целевой базы.
  3. Обработка. В этой операции мы можем изменить данные, полученные из исходной БД. Например, нам может потребоваться изменить формат полученных данных, чтобы они соответствовали новым структурам в Drupal 10.
  4. Установка. За нее отвечает часть целевого объекта, которая вводит данные в структуры базы данных Drupal 10.
drupal как обновить

Зачем переходить на Drupal 10

  • Обновление версии Drupal важно для безопасности сайта. Пример из практики ADCI Solutions: к нам обратилось руководство клиники, которое планирует начать работать с правительством. Для этого они обязаны пройти сертификацию по безопасности и по скорости портала. Это невозможно сделать с сайтом на устаревшей версии CMS, имеющей массу уязвимостей.
  • Более новые версии Drupal работают на PHP 8 и выше. Поздние версии PHP гарантируют быстродействие и безопасность ресурса — два параметра, которые его пользователи оценят больше всего. Кроме того, большинство хостингов поддерживают только PHP 8 и выше.
  • Чем дольше вы откладываете апгрейд, тем труднее будет обновить сайт в будущем. Drupal 7 и другие версии CMS разделяет пропасть из-за того, что седьмая версия имеет абсолютно другую кодовую базу. Мигрировать сайт все равно придется, но найти специалиста, который за это возьмется, будет сложнее.
  • Обновленной версией системы удобнее пользоваться и разработчикам, и пользователям. Профессионалам помогает управляться с Drupal новая дефолтная тема для фронтенда Olivero, а контент-менеджерам — новая тема для админ-панели Claro.
  • Активнее всего Drupal-сообществом развиваются контриб-модули для Drupal 9 и 10. Поэтому, откладывая обновление, вы упускаете возможность воспользоваться новыми фичами и модулями, несовместимыми со старыми версиями.
  • И наконец, новая версия системы всегда означает улучшенную производительность ресурса и поддержку современных стандартов веб-разработки — в общем, устойчивую и актуальную основу для вашего веб-проекта.
не могу обновить друпал

Какие преимущества у Drupal 10

Автоматические обновления ядра и модулей

Больше разработчикам не придется писать специальные скрипты для проверки выхода и установки обновлений. Drupal 10 внедряет принцип «настроить один раз и забыть», что упрощает обслуживание и подходит для людей без опыта в программировании. Эта функциональность особенно полезна для маленьких проектов с ограниченным числом зависимостей.

CKEditor 5

Интеграция новой версии WYSIWYG-редактора CKEditor была для разработчиков ядра одной из самых трудоемких задач. Теперь у администраторов есть инструмент, который напоминает привычные Microsoft Word и Google Docs. Окно, всплывающее при нажатии на выделенный текст или при вставке картинки, позволяет редактировать контент в реальном времени.

Decoupled Menus

Функциональность Decoupled Menus (несвязанные меню) позволяет фронтендеру легче трансформировать данные меню в элементы навигации, вместо того чтобы хардкодить их. Это также означает, что не-разработчики смогут редактировать меню.

Тема Olivero

Тема Olivero была введена в Drupal 9.1 в качестве экспериментальной и стала стандартной темой для фронтенда. Предыдущая тема Bartik, которая использовалась с 2011 года, устарела и не соответствовала современным требованиям. Olivero привносит на сайт современный дизайн с улучшенной типографикой, анимацией и палитрой цветов. Кроме того, Olivero более пригодна для пользователей с ограниченными возможностями.

Генератор тем Starterkit

Разработчики Drupal-тем получили стабильно работающий Starterkit theme generator. Прежде каждая новая тема должна была брать за основу тему Classy и, как следствие, наследовать её CSS-классы и разметку. Теперь же Starterkit поможет разработчикам экономить время. С его помощью они смогут копировать дефолтные темы в новую папку и наследовать CSS и HTML уже из них — это позволяет спокойно менять базовую тему, не боясь сломать дефолтные темы.

Насколько сложно перейти на Drupal 10? Миграция с Drupal 7 на Drupal 10

Сложность: 5 друпальчиков из 5

Drupal 7 имеет кодовую базу, критически отличную от Drupal 8, 9 и 10, поэтому мигрировать с нее на последнюю версию сложнее всего. При создании восьмой версии разработчики полностью переработали внутреннюю систему Drupal: были интегрированы компоненты Symfony, и с этого момента выпуск новых версий CMS привязан к релизам фреймворка.

Почему надо обновить Drupal 7

  • Drupal 7 — медленный. D7 использует устаревшие версии PHP, которые уже не обеспечивают быстродействия и уровня безопасности, необходимых современному ресурсу.
  • Если сайт построен на D7, это значит, что он был создан давно и уже оброс техническим долгом. Переход на другую версию Drupal — это шанс от него избавиться.
  • Многие контрибные модули, созданные для «семерки», больше не развиваются. Основной фокус внимания сообщества сконцентрирован на Drupal 9 и 10.
  • Количество разработчиков, умеющих работать с Drupal 7, уменьшается вместе с количеством сайтов на Drupal 7. Со временем вам будет все сложнее получить поддержку или помощи у сообщества.

Пошаговая инструкция как перейти с Drupal 7 на Drupal 10

Из-за того что Drupal 7 с технической точки зрения имеет мало общего с Drupal 8, 9 и 10, переход на «девятку» или «десятку» означает полную перестройку проекта. Это хороший момент, чтобы запланировать редизайн сайта, расправиться с техническим долгом, сделать аудит ресурса и пересмотреть плохо построенные алгоритмы.

Шаг 1. Резервное копирование
Создайте резервную копию базы данных с помощью MySQL:

mysqldump -u yourusername -p yourdatabase > backup.sql

Создайте также резервную копию файлов сайта. Вы можете запустить команду `rsync` через командную строку или просто скопировать содержимое корневой директории сайта в другую папку.

Шаг 2. Подготовка сервера и системы
- Убедитесь, что сервер соответствует требованиям Drupal 10. Например, установите PHP 8.1 или выше, активируйте расширения PHP, такие как `mbstring`, `pdo`, `json` и другие, которые могут потребоваться.
- Обновите Composer до последней версии:

composer self-update

Шаг 3. Проверка основных модулей
Проверить наличие обновленных версий модулей, работающих на Drupal 10, можно с помощью модуля Upgrade Status. Он же покажет, стоит ли модуль в очереди за патчем. Определите, для каких функций вы используете модули, которые больше не доступны, и могли бы альтернативные модули их заменить.

Шаг 4. Создание сайта на Drupal 10
Создайте новый сайт на последней версии Drupal 10. Добавьте модули, отобранные в предыдущем шаге. Вам также потребуется воссоздать типы контента, блоков, мультимедиа-файлов, меню и т. д. Нет смысла в точности копировать архитектуру старого сайта, сейчас у вас есть возможность улучшить структуру страниц и начать пользоваться новыми инструментами, такими как Layout Builder.

Шаг 5. Обновление кастомных модулей
Мы рекомендуем использовать кастомные модули по минимуму. Обычно их обновление подразумевает переписывание кода и использование новых API, предоставляемых Drupal 10.

Шаг 6. Миграция данных
Перед миграцией проведите тщательный аудит контента. Убедитесь, что вы создали все необходимые структуры для переноса контента на новом сайте (шаг 4). Если сайт небольшой, данные можно перенести вручную. Для нагруженных сайтов рекомендуем автоматическую миграцию контента.

Шаг 7. Обновление темы
На этом этапе вы можете сделать ребилд старой темы, создать собственную тему с нуля на основе нового дизайна или использовать уже созданную и адаптированную под Drupal 10 тему.

Шаг 8. Отладка и устранение проблем
- С помощью Drush можно получить информацию о состоянии сайта, проверить, активированы ли необходимые модули, и т. д. Команда drush status выводит основную информацию об установке Drupal и его параметрах.

- Drush позволяет просматривать журналы событий и логи, что может быть полезно для выявления проблем. Команда drush watchdog-show выводит записи журнала.

Шаг 9. Тестирование
- Инструменты для автоматизированных браузерных тестов, такие как Selenium WebDriver или Cypress, могут быть полезными для проверки интерфейса сайта в реальных браузерах. Вы можете настроить тестовые сценарии, которые будут имитировать действия пользователя, такие как щелчки мышью, ввод текста и проверку содержимого страницы.

- Проверьте производительность сайта с помощью инструментов для нагрузочного тестирования, таких как Apache JMeter или Gatling. Это позволит определить, как сайт реагирует на высокую нагрузку и оценить его производительность.

Шаг 10. Перенос на рабочий сервер
- Когда вы убедитесь, что все работает корректно на тестовом сервере, перенесите сайт на рабочий сервер с помощью таких инструментов, как `rsync` или `git`.

Миграция с Drupal 8 на Drupal 10

Сложность: 3 друпальчика из 5

Поддержка D8 прекратилась 30 ноября 2021 года, обновления для D9 перестанут выходить в ноябре 2023-го. Это значит, что с этого момента пользоваться этими версиями системы уже или скоро будет небезопасно. Но никакой паники: перейти с «восьмерки» на «десятку» относительно легко.

Миграция с Drupal 8 на Drupal 10 — это переход на другую версию в рамках одной кодовой базы, поэтому это не так трудно, как иметь дело с D7. Даже для сложного сайта это вопрос пары недель.

Пошаговая инструкция как перейти с Drupal 8 на Drupal 10

Шаг 1. Резервное копирование
Перед началом обновления сделайте полное резервное копирование текущего сайта, включая файлы и базу данных. Вы можете использовать инструменты, такие как phpMyAdmin для резервного копирования базы данных.

Шаг 2. Подготовка сервера и системы
- Убедитесь, что сервер соответствует требованиям Drupal 10. Проверьте версию PHP (рекомендуется PHP 8.1 или выше) и активируйте необходимые расширения PHP, такие как `mbstring`, `pdo`, `json`, и другие.
- Обновите Composer до последней версии:

composer self-update

Шаг 3. Обновление Drupal Core
Обновите ядро Drupal до версии 9.4 минимум с помощью Composer. В корневой директории проекта выполните:

composer update "drupal/core-*" --with-all-dependencies

Шаг 4. Обновление контрибных модулей и тем
Вы должны обновить все контрибные модули и темы до версий, совместимых с Drupal 10, пока вы еще используете Drupal 9. Проверку можно выполнить с помощью модуля Upgrade Status.

Шаг 5. Проверка совместимости кастомного кода
Выполните проверку совместимости кастомных модулей и тем с Drupal 10 с помощью того же Upgrade Status. Модуль анализирует код и предоставляет рекомендации по его обновлению.

Шаг 6. Обновление Drupal Core
Отредактируйте файл composer.json и обновите версию для ядра drupal/core-* до ^10.  

"require" : {   
"composer/installers" : "^2.0"   
"drupal/core-composer-scaffold" : "^10"    
"drupal/core-project-message" : "^10"    
"drupal/core-recommend" : "^10"

Помимо указанных компонентов, в composer.json могут также входить компоненты drupal/core-dev и drupal/core.

Как только вы запустите composer update, начнётся обновление.

Шаг 7. Обновление базы
drush updatedb

Шаг 8. Отладка и устранение проблем
- С помощью Drush можно получить информацию о состоянии сайта, проверить, активированы ли необходимые модули, и т. д. Команда drush status выводит основную информацию о установке Drupal и ее параметры.

- Drush позволяет просматривать журналы событий и логи, что может быть полезно для выявления проблем. Команда drush watchdog-show выводит записи журнала.

Шаг 9. Тестирование
- Инструменты для автоматизированных браузерных тестов, такие как Selenium WebDriver или Cypress, могут быть полезными для проверки интерфейса сайта в реальных браузерах. Вы можете настроить тестовые сценарии, которые будут имитировать действия пользователя, такие как щелчки мышью, ввод текста и проверку содержимого страницы.

- Проверьте производительность сайта с помощью инструментов для нагрузочного тестирования, таких как Apache JMeter или Gatling. Это позволит определить, как сайт реагирует на высокую нагрузку, и оценить его производительность.

Обновление Drupal 9 до Drupal 10

Сложность: 2 друпальчика из 5

В самом ядре Drupal 10 заложена крутая система обновлений, которая помогают безболезненно перейти на последнюю версию системы. Кроме того, «десятка» предоставляет готовый набор модулей, который позволяют экономить огромное количество трудочасов разработчиков.

Переход на соседнюю версию — это не так трудно, как прыжок через несколько версий, поэтому он называется апдейтом, а не миграцией. Подробную инструкцию мы даем вот в этом гайде: Гайд по быстрому обновлению сайта с Drupal 9 на Drupal 10.

Миграция Drupal-сайта с помощью Drupal-команды

Сложность: 1 друпальчик из 5

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

обновить друпал

Заключение

Обновление версии Drupal — как поход ко врачу: муторно, но необходимо для хорошей жизни. По мере подготовки новой версии команда разработчиков Drupal обнаруживает новые уязвимости и баги и разрабатывает патчи для их устранения. Обновленный Drupal обеспечивает совместимость сайта с последними стандартами веб-разработки, чтобы ресурс корректно отображался на разных устройствах и браузерах. Кроме этого, каждое обновление системы привносит новые функции и улучшает работоспособность сайта.

Люди вряд ли откажутся от такого апдейта. А пока это больше напоминает сценарий кинофильма про будущее, обновите версию Drupal.

olga rogaleva
Ольга Рогалева

Редактор, SEO-специалист, контент-райтер

Напишите нам!

Мы регулярно просматриваем не только почту, но и спам. Ваша заявка от нас не ускользнёт.

Напишите нам!

Но сначала правильно заполните обязательные поля.