Comment migrer votre site Web de Drupal 10 à Drupal 11 ?
Comme vous le savez, la nouvelle version du CMS Drupal (#Drupal11) apporte son lot de nouveautés : modernisation du code, adoption de Symfony 6, renforcement de la sécurité, etc. Même si la migration d’un site Web développé avec Drupal 10 n’est pas encore préoccupante, vous êtes nombreux à vouloir bénéficier des nouvelles évolutions que propose Drupal 11.
Dans cet article, je vous donne les 5 étapes clés pour effectuer cette montée de version et passer aisément de la version 10 de ce CMS à Drupal 11. Allez, c’est parti…
Étape 1 : préparer votre environnement pour Drupal 11
Avant de procéder à la migration de votre site Web vers la nouvelle version de Drupal, vous devez vérifier que votre environnement d’hébergement réponde bien aux exigences suivantes :
- Espace disque : 100MB minimum
- Nginx : version 1.1 minimum
- Apache : version 2.4.7 minimum
- PHP : PHP 8.3 minimum avec 64MB de taille mémoire minimum
- Base de données :
- MySQL ou Percona : version 8 minimum
- MariaDB : version 10.6 minimum
- SQLite : version 3.45 minimum
- PostgreSQL : version 16 minimum
- Drush : version 13 minimum
Utiliser la commande « Composer » suivante :
composer require drush/drush^13 |
Étape 2 : mettez-vous à jour de la dernière version de Drupal 10
Votre site Web fonctionne-t-il bien avec la dernière version de Drupal 10 ? En effet, pour maximiser vos chances dans votre projet de migration, je vous conseille d’être sur la dernière mise à jour de Drupal. À date, vous devriez viser la version Drupal 10.3.0 ou une version ultérieure.
Pourquoi ce point est important ? Tout simplement parce que mettre à jour la dernière version de Drupal 10 vous assure de bénéficier de toutes les dernières fonctionnalités et des mises à jour de sécurité. Ce point facilitera la migration de votre site Web vers Drupal 11.
Étape 3 : mettez à jour les modules contribués et le code spécifique
Avant de commencer la migration de votre site Web vers Drupal 11, vous devez identifier et résoudre le code déprécié. Pour réussir cette étape, il sera nécessaire d’effectuer les points suivants.
Exploitez le module « Upgrade Status »
Le module « Upgrade Status » analyse l'ensemble de votre projet (code custom et code des modules contribués). Il fournit une jauge en pourcentage, le but étant d'atteindre 100 % avant de faire la montée vers la version supérieure. Dans ce guide la version recherchée est Drupal 11.
Le module « Upgrade Status » est votre outil multifonction pour les mises à niveau Drupal. Il permet de fournir un rapport de compatibilité détaillé pour chaque module et thème du projet. Pour une utilisation optimale, voici la marche à suivre :
1. Installez le module : composer require drupal/upgrade_status
2. Ensuite, rendez-vous dans Rapport > Upgrade Status dans votre panneau d’administration Drupal
3. Enfin, exécutez un scan complet pour identifier :
- Les modules nécessitant des mises à jour ;
- Le code spécifique utilisant encore des API appréciées ;
- Les éventuels obstacles de compatibilité.
Mise à jour des modules contribués
Pour mettre à jour les modules contribués, il vous faudra :
- Utiliser « Composer ». Il vous permettra de mettre à jour les modules identifiés par Upgrade Status ;
- Et pour les modules sans version compatible Drupal 11, je vous suggère de :
- Vérifier le tableau de bord de dépréciation du projet Drupal 11 pour des mises à jour. Il est par exemple possible qu’un module ait été abandonné car ses fonctionnalités ont été intégrées au core de Drupal.
- Envisager de contribuer au développement du module ou de trouver des solutions alternatives.
Pensez évidemment à tester votre site après toute mise à jour de module, afin de vous assurer qu’aucune fonctionnalité n’a été dépréciée.
Mise à jour du code custom
Vous venez de mettre à jour vos modules contribués, continuons avec la mise à jour du code custom que contient votre site Web. Pour ceci :
- Traitez toutes les dépréciations identifiées par Upgrade Status ;
- Testez minutieusement après chaque modification pour assurer que la fonctionnalité est maintenue ;
- Portez une attention particulière aux :
- Changements d’API ;
- Remplacements de fonctions ;
- Mises à jour de classes et de namespaces.
💡 Premier tips de cet article. Pour aller plus vite avec le code custom, je vous conseille d’utiliser « Drupal Rector », qui est un outil puissant d’automatisation de mise à niveau de code PHP.
Étape 4 : effectuez la mise à niveau du noyau de Drupal 11
Maintenant que vos modules contribués et votre code custom sont à jour, poursuivons le processus de migration avec la mise à niveau du noyau de Drupal 11. Pour cette quatrième étape, je vous ai listé les points à réaliser :
1. Sauvegardez tout - Avant de poursuivre, je vous conseille de faire une sauvegarde complète de votre code et de votre base de données.
2. Effectuez la mise à jour – Avec « Composer », on requiert les packages nécessaires :
composer require 'drupal/core-recommended:^11' 'drupal/core-composer-scaffold:^11' 'drupal/core-project-message:^11' --update-with-dependencies --no-update |
Attention, pour éviter les problèmes de dépendance mutuelle, ne mettez pas encore à jour les « paquets ». L’utilisation de l’option « --no-update » permet de modifier seulement le fichier composer.json.
Si drupal/core-dev est utilisé dans votre projet :
composer require 'drupal/core-dev:^11' --dev --update-with-dependencies --no-update |
3. Dry Run – Pour prévisualiser votre mise à jour, vous devez utiliser la fonctionnalité de simulation de « Composer ». Ce dernier vous renverra les informations d’exécution de la commande sans toutefois réellement exécuter la commande.
composer update --dry-run |
Si votre prévisualisation révèle des conflits, il faudra résoudre les dépendances. Pour ça, vous pouvez vous aider de la commande « composer why-not » suivie du nom et de la version d’un package afin que Composer vous indique pour quelles raisons il ne peut pas mettre à jour ce package.
Résolvez les conflits et répétez l’opération « dry-run » jusqu’à ce qu’il n’y en ait plus aucun.
composer why-not drupal/core-recommended 11.0 |
4. Effectuez la mise à jour
composer update --with-all-dependencies |
5. Mettez à jour la base de données
drush updb |
6. Et enfin, videz les caches
drush cr |
Étape 5 : tester en profondeur et corriger les erreurs
Vous venez de terminer le plus gros de la migration vers la nouvelle version de Drupal. Maintenant, il faut vérifier, tester et corriger les éventuelles erreurs qui auraient pu apparaître avec la mise à jour du code. Je vous conseille donc de :
1. Regarder les erreurs et les avertissements présents sur le tableau de bord de votre projet /admin/reports/status.
2. Consulter les messages récents de log de Drupal. Ici, vous avez deux possibilités : soit avec l’url /admin/reports/dblog si vous avez activé le module dblog, soit dans les fichiers de logs configurés sur votre serveur si vous avez installé le module syslog.
💡 Gagnez du temps avec cet autre tips. Pour une vérification approfondie, je vous recommande la commande ci-dessous. Elle vous permettra, pendant que vous parcourez le site, de surveiller les erreurs en temps réel dans votre terminal. Là aussi le module dblog doit être activé.
drush watchdog:tail |
Cette commande affiche les messages de journalisation en direct dans le terminal, ce qui facilite l’identification rapide des problèmes lors de votre navigation.
Et n’hésitez pas à tester les « pages clés » de votre site Web (Accueil, recherche, Filtre, Indexation, création de contenu, etc.).
Toujours dans le but de faciliter votre recette, pensez à nettoyer les journaux dans le terminal et à supprimer les messages d’erreur selon leur gravité afin de ne conserver que ceux susceptibles de vous intéresser. Le but étant de gagner en clarté lors de vos tests en évitant des logs « parasites ».
drush watchdog:delete --severity=NUMBER. drush watchdog:delete --severity=NUMBER |
Dernier point, sur une échelle de 0 (urgence) à 7 (débogage), le paramètre --severity définit le niveau de gravité des messages à supprimer. Cette échelle facilite le ciblage des types d’erreurs à effacer.
En résumé, la migration de votre site Web de Drupal 10 vers Drupal 11 nécessite une planification et une exécution soignées. En suivant ces 5 étapes, vous serez bien préparé pour effectuer cette montée de version en douceur. Dernière chose, n’oubliez pas que la clé d’une migration réussie réside dans une préparation anticipée, des tests rigoureux et le suivi des derniers développements de Drupal. J’espère que cet article vous a été utile. Je vous invite à poursuivre votre lecture avec cette sélection d’articles :
- Mise à jour de Drupal 9 vers Drupal 10 : le mode d'emploi
- De l'urgence de migrer sur Drupal 9 : conseils et intérêts de la migration
Crédit photo : gorodenkoff
Sources :