Оновлення до останньої версії D10 (10.3.6)
Ми тут побували на Drupal Cafe Lutsk #26, і нас надихнуло на статтю, при чому ж ми маємо достатньо проектів на Drupal CMS.
Що ж час оновити систему нашого соціального проекту до останньої версії.. Гори сарай, гори і хата, як кажуть )
Друпал 10 себе вже нормально зарекомендував, але ще до 11 версії страшно оновлюватись. Але ми не боїмосі )

Початкові дані
Почнемо з того, що ми вже пройшли проблему оновлення CKEditor 4 до CKEditor 5. І ми вже мали проект з Drupal 10.1.8.
Мабуть зрозуміло, через які проблеми нам довелось пройти, щоб оновитись від D10.1.8?
Вже після цього, серйозного оновлення, перестала працювати реєстрація, проблема виявилась проста, треба було б оновити всі модулі, всі! А не те що червоним світиться.. )
Що ж команда з оновлення OpenID Connect / OAuth client успішно пофіксило помилку:
composer require 'drupal/openid_connect:^3.0@alpha'
Мабуть краще покажемо скріни і трохи прокоментуємо це . Може хто ще збирається апгрейдити свої проекти…

Drupal 10
На цей момент актуальна версія “десятки” це - 10.3.6.
Правильна послідовність дії при оновленні:
- Перевірити актуальні версії.
- Оновити всі модулі до актуальних робочих версій.
- Оновлюватись мінорно (послідовно, не одразу до останньої версії).
- В процесі оновити Drush.
- Також буде потреба оновити php 8.3, СУБД.
Тож бо, тепер по черзі.
Вимоги Drupal 11:
- Apache 2.4.7 or higher, Nginx 1.1 or higher, or any other web server with proper PHP support.
- Database
- MySQL 8.0 or higher.
- MariaDB 10.6 or higher.
- Percona Server 8.0 or higher.
- PostgreSQL 16 or higher.
- SQLite 3.45 or higher. - PHP
- PHP version: Drupal 11 requires PHP 8.3.
- PHP extensions needed: PDO, XML, GD-library, OpenSSL, JSON, cURL, Mbstring, zlib.


Оновлення Drush та інших модулів
Наш проект не дозволив оновитись до останньої версіїї Drush, тому йдемо послідовно. мінорно:
composer require drush/drush:^12.5.2 -W
Далі вже онволюємо сам друпал до версії 10.3.6
composer require drupal/core-recommended:10.3.6 drupal/core-composer-scaffold:10.3.6 drupal/core-project-message:10.3.6 --update-with-all-dependencies
Досить спрощує використання ключа -W, бо таким чином ми оновлюємо всі залежності.
З цікавого, також, стала проблема в модулі Gin Toolbar, тому радимо вимкнути його:
drush pmu toolbar
Запускаємо апдейт бази данних:
drush updb
Та і на тому система оновлена до максимальної "десятки".
Підготовка до оновлення Drupal 11
Так, як Drupal 11 вимагає вже php8.3, то час вже і нам то робити.
Команди що допоможуть оновити PHP:
Save existing php package list to packages.txt file
sudo dpkg -l | grep php | tee packages.txt
Add Ondrej's PPA
sudo add-apt-repository ppa:ondrej/php # Press enter when prompted.
sudo apt update
Install new PHP 8.3 packages
sudo apt install php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl}
Install FPM OR Apache module
sudo apt install php8.3-fpm
OR
sudo apt install libapache2-mod-php8.2
On Apache: Enable PHP 8.3 FPM
sudo a2enconf php8.3-fpm
When upgrading from an older PHP version:
sudo a2disconf php8.2-fpm
Remove old packages
sudo apt purge php8.2*
Є ще дещо. треба оновити/встановити:
sudo apt-get install php8.3-gd
sudo apt-get install php8.1-xml


Оновлення Drupal 11
Оновимо Drush 13:
composer require drush/drush:^13 -W
У нас проект маленький, критичного нічого не було змінено, окрім оновлення моделів, бо деякі модулі залежні саме від версії Drupal.
Нагадаю як оновлюються модулі:
composer require ‘drupal/<name_module>:^<version>’
Таку команду можна найти на кожній сторінці проекта-модуля.
Тому наступним кроком оновили Drupal:
composer require drupal/core-recommended:^11 drupal/core-composer-scaffold:^11 drupal/core-project-message:^11 --update-with-all-dependencies

Висновок
Оновлення до Drupal 11 — це стратегічний крок, що відкриває нові можливості для розвитку вашого бізнесу в цифровому просторі. Ця версія не тільки пропонує сучасні рішення для створення високоякісного контенту, але й забезпечує вищий рівень продуктивності та безпеки. Drupal 11 допомагає організаціям бути гнучкими та готовими до змін, швидше впроваджувати нові функції та інтеграції, що стає важливою перевагою в умовах зростаючої конкуренції. Ретельна підготовка до оновлення та використання нових інструментів і можливостей цієї версії дозволять оптимізувати ваші робочі процеси та підвищити ефективність управління сайтом. Оновлення до Drupal 11 означає готовність вашого бізнесу до сучасних викликів і технологічних інновацій, забезпечуючи стабільність і успішний розвиток у майбутньому.