Найти тему

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

Оглавление

Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время. Два года назад я уже занимался чем-то подобным:

Обновление Drupal 8 до Drupal 9 в Windows

Тогда я делал всё ручками, на этот раз буду использовать Composer. Частично.

Надеюсь, не нужно напоминать сделать резервную копию базы данных и сайта?

Посмотрим доступные обновления.

-2

Текущая версия движка 9.5.9. Обновляться будем на 10.2.0.

Sites must update to at least Drupal 9.4.4 before upgrading to Drupal 10

Минимальная версия, с которой можно перейти на десятку: 9.4.4.

Подготовка к обновлению

Сайт работает на PHP 8.0. Заглянем в табличку совместимости.

-3
Drupal 10 requires at least PHP 8.1. PHP 8.1.6 is recommended.

Для Drupal 10 потребуется минимум PHP 8.1, так что для начала обновим PHP. Начиная с PHP 8.1 установка сильно усложнилась. Microsoft Web Platform Installer (WebPI), которым раньше я пользовался для установки PHP больше не работает, так что устанавливать приходится вручную. Возня с дополнительными расширениями тоже приключение. Очень печально, что для Windows Server 2016 нет нормальных способов установки. Установку PHP 8.1 вынес в отдельную статью.

Установка PHP 8.1 на IIS 10

-4

Drupal 10 поддерживает БД:

  • MariaDB 10.3.7+
  • MySQL/Percona 5.7.8+

Этим требованиям мой проект удовлетворяет.

Устаревшие модули

Модули, которые больше не поддерживаются в Drupal 10:

  • Aggregator
  • CKEditor 4
  • Color
  • HAL
  • Quick Edit
  • RDF

Часть модулей я удалил, типа Color, Quick Edit и RDF.

-5

Остался CKEditor 4.

-6

Если очень нужна работа в CKEditor 4, то его можно установить как отдельный модуль:

https://www.drupal.org/project/ckeditor

Но я уже буду сразу переходить на CKEditor 5. Устанавливаю его.

-7

Нужно изменить текстовые редакторы, использующие CKEditor 4, переключить их на CKEditor 5.

-8

Переключаю у базового редактора.

-9

Кнопочки на панели автоматически мигрировали.

-10

Переключаю у полного редактора.

-11

Одна кнопка какая-то лишняя добавилась, отредактировал вручную.

-12

Текстовые редакторы переключены на CKEditor 5.

-13

Теперь можно удалить модуль CKEditor 4.

Обновление расширений

Все модули обновляю до последних версий.

Устаревшие темы

Темы, которые больше не поддерживаются в Drupal 10:

  • Bartik
  • Classy
  • Seven
  • Stable

С темами тоже нужно разобраться, переключить их на новые, к примеру. Но это позже.

Upgrade Status

Модуль Upgrade Status поможет проверить ваш сайт на совместимость с Drupal 10.

Вручную он у меня не захотел ставиться, пришлось использовать Composer.

composer require drupal/upgrade_status
-14

Смотрим отчёт совместимости.

-15

Проект ещё не совместим.

-16

Имеются несовместимые темы. Заменим их на совместимые.

-17

Заменил темы на совместимые.

-18

Отчёт стал лучше, но проект всё ещё не совместим.

-19

Не нравится тема Stable, которая используется в основной теме сайта. Её нельзя удалить, тем более что она входит в ядро. Но эту тему можно установить отдельно.

https://www.drupal.org/project/stable

composer require "drupal/stable":"^2.0"

Composer в помощь, обращаем внимание на кавычки, в Windows только так сработает.

-20

Проверяем совместимость.

-21

Совместимо. Но рекомендуют сначала обновить Drupal 9 до последней версии.

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

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

Обновилось.

-24

Ядро Drupal обновилось до версии 9.5.11.

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

composer update
-25

Редактируем файл composer.json. Меняем у модулей ядра версию на 10.2.

"drupal/core-composer-scaffold": "^10.2",
"drupal/core-project-message": "^10.2",
"drupal/core-recommended": "^10.2",
"drupal/core-vendor-hardening": "^10.2",
-26
composer update "drupal/core-*" --with-all-dependencies
-27

Не получилось. Внимательно читаем что написано и исправляем ошибки. У меня две проблемы: во-первых, я забыл удалить временный модуль Upgrade Status, во-вторых, у меня включена minimum-stability с версией alpha, откуда я установил один из модулей CKEditor Anchor Link.

Удаляю ненужный мне модуль CKEditor Anchor Link.

-28

Возвращаю параметр minimum-stability в значение по умолчанию.

"minimum-stability": "stable"

Удаляю модуль Upgrade Status.

composer remove drupal/upgrade_status

Пробую снова обновиться.

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

Обновление проходит успешно. Запускаем update.php для обновления базы данных.

-30

Применяем ожидающие обновления.

-31
-32

Обновления применены.

-33

Чистим кэш.

-34

Ядро Drupal обновлено до версии 10.2.0.

Источник:

Обновление Drupal 9 до Drupal 10 в Windows | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.