Найти тему

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

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

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

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

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

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

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

Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.-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. Заглянем в табличку совместимости.

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

Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 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.

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

Остался CKEditor 4.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Bartik
  • Classy
  • Seven
  • Stable

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

Upgrade Status

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

composer update drupal/core --with-dependencies
Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.-22
composer update "drupal/core-*" --with-all-dependencies
Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.-23

Обновилось.

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

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

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

composer update
Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.-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",
Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.-26
composer update "drupal/core-*" --with-all-dependencies
Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.-27

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

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

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

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

"minimum-stability": "stable"

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

composer remove drupal/upgrade_status

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

composer update "drupal/core-*" --with-all-dependencies
Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.-29

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

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

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

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

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

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

Чистим кэш.

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

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

Источник:

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

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