Le saviez-vous ? Drupal 9 est disponible en version stable depuis le 3 juin 2020, déjà ! Pourtant, beaucoup de sociétés n’ont pas encore migré leurs sites de Drupal 8 vers Drupal 9 – Drupal 8 ayant continué à bénéficier de mises à jour jusqu’en novembre 2021. Or, il faut savoir qu’à partir de cette date, seul Drupal 9 bénéficiera des mises à jour de sécurité et des corrections de bugs.
S’il était un peu précipité de migrer vers Drupal 9 il y a un an, il est aujourd’hui nécessaire de planifier rapidement cette migration.
Pourquoi Drupal stoppe la mise à jour de la version 8 dès novembre 2021 ?
Drupal 9 n’est pas une révolution. Les avancées de Drupal 9 sont surtout d’ordre technique, avec notamment la mise à jour du framework PHP Symfony et du moteur de templates Twig. Drupal 8 est basé sur Symfony 3 et Twig 1 tandis que Drupal 9 est basé sur Symfony 4 et Twig 2.
Le 21 novembre, Symfony 3 ne sera plus maintenu. Drupal 8 voit sa date de fin de support coïncider avec celle de Symfony 3.
Par ailleurs, l’ensemble des modules Drupal 8 sont actuellement mis à jour pour être compatibles avec Drupal 9.
Nouveautés de Drupal 9
Comme indiqué précédemment, les nouveautés sont surtout techniques et permettront d’offrir aux développeurs une base solide pour concevoir et réaliser leurs propres fonctionnalités.
Drupal 9 comprend, ou comprendra prochainement, tout de même quelques évolutions fonctionnelles telles que :
- Un gestionnaire de médias plus poussé avec le module Media Library (qui va remplacer le module Média Entity) qui permettra de gérer les images, les fichiers audios, les documents, les vidéos ainsi que les vidéos distantes,
- Un gestionnaire des états de Workflow lors de publication de contenus avec le module Workflow,
- L’apparition d’un outil avancé de conception visuelle de pages avec le module Layout Builder.
Comment migrer de Drupal 8 à Drupal 9 ?
Contrairement au passage de Drupal 7 à Drupal 8, qui nécessitait une refonte complète, le passage de Drupal 8 à Drupal 9 se fera via la mécanique usuelle de montée de version mineure.
Mais il faudra effectuer auparavant les actions suivantes :
1. Installer le module Drupal 8 Upgrade Status
Ce module permet d’obtenir un audit complet de votre site pour préparer la migration vers Drupal 9.
Installation du module via composer : composer require drupal/upgrade_status
Le résultat de l’audit est ensuite accessible sur la page /admin/reports/upgrade-status
Actions effectuées par le module :
- Vérification de la version (Drupal 8.8 ou 8.9) et suggestion de mise à jour vers la dernière version,
- Vérification des exigences du système de Drupal 9 de votre environnement,
- Vérification de la compatibilité des modules contributeurs installés avec Drupal 9,
- Exécution des vérifications de code sur les modules custom pour détecter les problèmes de compatibilité Drupal 9.
En fonction du résultat d’audit, les actions suivantes devront oui ou non être effectuées.
2. Effectuer les dernières mises à jour Drupal 8 (voir mise à jour demandée par Upgrade Status)
3. Mettre à jour les environnements de développement, recette et production (voir mises à jour demandées par le module upgrade status)
Environnement prérequis pour Drupal 9 :
Version de Nginx
Si vous exécutez Drupal 9 sur Nginx, la version 0.7.x ou ultérieure est requise.
Version de Apache
Si vous exécutez Drupal 9 sur Apache, la version 2.4.7 ou ultérieure est requise.
Version de PHP
Drupal 9 nécessite au moins PHP 7.3. PHP 7.4 est également pris en charge mais n’est pas obligatoire. PHP 8 est supporté depuis Drupal 9.1.0.
Version de base de données
Si vous utilisez Drupal 9 avec :
- MySQL ou Percona, la version 5.7.8+ est requise,
- MariaDB, la version 10.3.7+ est requise,
- SQLite, la version 3.26+ est requise,
- PostgreSQL, la version 10 est requise avec l’extension pg_trgm.
Version de Drush
Drush 10
4. S’assurer que les modules contributeurs utilisés sous Drupal 8 sont bien compatibles avec Drupal 9
Si le rapport d’audit de upgrade status indique que les versions de certains des modules installés ne sont pas compatibles Drupal 9, regarder la préconisation :
- Si une mise à jour compatible Drupal 9 existe, alors mettre à jour le fichier composer.json (étape 5) avec la version recommandée,
- S’il n’y a pas de mise à jour compatible, alors il faudra utiliser un autre module contributeur équivalent ou patcher le module Drupal 8 pour le rendre compatible.
5. S’assurer que les développements custom effectués pour le site (module, thème, etc..) sont bien compatibles Drupal 9
Corriger les incompatibilités signalées par le rapport d’audit de upgrade status.
6. Mettre à jour les versions dans le fichier composer.json
Si dans le cadre de votre projet Drupal 8, vous utilisez le gestionnaire de dépendances composer, il va falloir parcourir les versions renseignées dans le fichier composer.json et les modifier pour permettre la mise à jour vers drupal 9 (core de Drupal 9 + version de modules compatible Drupal 9).
Pour connaitre les versions compatibles, voir le rapport d’audit.
Exemple pour le core :
- Pour Drupal 8 on a : « drupal/core »: « ~8.6 »
- Pour Drupal 9 il faut : « drupal/core »: « ~9.* »
Après avoir effectué toutes ces actions, la mise à jour se fera comme une mise à jour Drupal 8 classique avec un composer update.
Focus sur le migration D7 vers D9
Comme la migration de D7 vers D8, la migration D7 vers D9 ne sera pas possible facilement. Une refonte globale sera nécessaire, il faudra créer entièrement un nouveau site Drupal 9 et tenter de récupérer les contenus de Drupal 7 avec le module Migrate.
Aujourd’hui, la majorité des sites Drupal sont encore en Drupal 7 (environ 650 000 sites).
Pour rassurer un peu les administrateurs et leur laisser un peu de temps pour migrer, la communauté Drupal a décidé d’étendre le support jusqu’en novembre 2022.
Cette décision a notamment été prise à cause de l’impact important du COVID-19 sur le budget des entreprises.
Accompagnement Digiwin sur Drupal
Vous avez des questions sur cet article ?
Vous voulez être accompagné dans votre process de migration de D8 vers D9 ou dans une refonte complète de votre site en D7 ?
Les équipes de Digiwin se tiennent à votre disposition. Contactez-nous !