Image mise en avant pour l'article

Comment migrer votre site Web de Drupal 10 à Drupal 11 ?

18 novembre 2024
Drupal
Attendue pour la fin 2024, la nouvelle version majeure du CMS Drupal est finalement sortie le 2 août. Aujourd’hui, vous êtes nombreux à vous demander comment effectuer cette montée de version pour un site Web développé sous Drupal 10.


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…

Sur la photo, nous voyons un développeur web travailler sur un projet de site internet

É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é.

Capture d'écran montrant un rapport de compatibilité fourni par Upgrade Status

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

Capture d'écran montrant un exemple de conflit empêchant la mise à jour. Ici, mauvaise version de php

Capture d'écran montrant le résultat de la commande ”composer why-not”

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 :


Crédit photo : gorodenkoff
Sources :

Image mise en avant pour l'article
Aimad Bachar
Développeur Web
Besoin d'aide pour migrer votre site vers Drupal 11 ?
Notre équipe d'experts "Drupal" vous accompagne dans votre projet de migration vers Drupal 11 !
Contactez-nous !