Mettre à jour Drupal 8, 9 ou 10 vers Drupal 11
Une mise à jour vers Drupal 11 est la prochaine étape majeure pour de nombreux sites encore sur Drupal 8, 9 ou 10. Le support de sécurité des anciennes versions s'arrête selon un calendrier fixe, et chaque nouvelle version apporte de meilleures performances, des dépendances à jour et une base de code plus maintenable. Dans ce guide, je détaille le chemin d'upgrade complet : de Drupal 8 et 9 via Drupal 10.3+ jusqu'à Drupal 11, avec planification PHP, modules contrib, vérifications du code custom et commandes Composer. Pour le contexte sur Drupal 11, voir notre aperçu de la sortie Drupal 11. Si vous estimez encore l'effort, lisez comment préparer un upgrade de version Drupal.
Dans cet article :
- Pourquoi mettre à jour vers Drupal 11 ?
- Peut-on passer directement à Drupal 11 ?
- Qu'est-ce qui a changé entre Drupal 10 et Drupal 11 ?
- Comment préparer un upgrade Drupal ?
- Que vérifier avant un upgrade Drupal 11 ?
- Comment mettre à jour depuis Drupal 8 ?
- Comment mettre à jour de Drupal 9 vers Drupal 10 ?
- Comment mettre à jour de Drupal 10 vers Drupal 11 ?
- Quels problèmes peuvent survenir lors d'un upgrade Drupal ?
- Quelles commandes Composer aident pour un upgrade Drupal ?
- Besoin d'aide pour planifier un passage serein à Drupal 11 ?
Pourquoi mettre à jour vers Drupal 11 ?
Drupal 11 est sorti en 2024 et poursuit la ligne Drupal moderne sur Symfony 6 et PHP 8.3+. Rester sur des versions non supportées signifie plus de correctifs de sécurité de Drupal.org. Drupal 9 a atteint sa fin de vie en novembre 2023 ; Drupal 10 suivra le même cycle. Un upgrade ne concerne pas seulement les nouvelles fonctionnalités - il maintient votre site sur une stack supportée et alignée sur les standards web actuels.
Drupal 11 s'appuie sur Drupal 10 avec des mises à jour de dépendances, du code legacy retiré et un travail de performance continu. Si vous comparez les options à long terme depuis de très anciennes versions, notre comparaison Drupal 7 vs Drupal 11 montre l'évolution de la plateforme. Les sites encore sur Drupal 7 devraient d'abord lire comment se préparer à la fin de vie de Drupal 7.
Peut-on passer directement à Drupal 11 ?
Dans la plupart des projets, le chemin le plus sûr vers Drupal 11 n'est pas un saut direct depuis une ancienne version. Un site Drupal 8 ou Drupal 9 doit d'abord être amené vers une version Drupal 10 prise en charge. La documentation Drupal.org pour Drupal 11 indique Drupal 10.3 ou plus récent comme étape avant Drupal 11, car les anciennes étapes de mise à jour ne sont plus présentes dans Drupal 11.
C'est important pour estimer le travail. La mise à jour ne consiste pas seulement à changer la version du core dans Composer. L'équipe doit vérifier l'hébergement, mettre à jour les modules contrib, retirer les API dépréciées du code custom et tester le site après chaque grande étape.
Qu'est-ce qui a changé entre Drupal 10 et Drupal 11 ?
Drupal 11 affine la plateforme plutôt que de la réinventer. Attendez-vous à des mises à jour de dépendances, au nettoyage d'API dépréciées et à quelques modules retirés du core. La transition depuis Drupal 10 est en général plus douce que les grands sauts des versions antérieures, mais la planification reste essentielle.
Exigences de plateforme
- PHP 8.3 ou plus récent est requis pour Drupal 11 (Drupal 10 exigeait PHP 8.1+).
- Symfony 6.4+ et des bibliothèques JavaScript mises à jour livrent avec le core.
- Versions de base de données restent proches de Drupal 10 : MariaDB 10.3.7+, MySQL 5.7.8+, PostgreSQL 12+, SQLite 3.26+.
Modules et thèmes core retirés
Plusieurs extensions dépréciées dans Drupal 10 sont retirées dans Drupal 11, dont Actions UI, Activity Tracker, Book, Forum, Statistics et Tour. Single Directory Components (SDC) et Help Topics sont intégrés différemment au core et sont considérés comme obsolètes dans leur ancienne forme. Avant l'upgrade, arrêtez d'utiliser ces modules dans Drupal 10 ou installez leurs remplacements contrib sur Drupal 10.3+.
Les thèmes retirés plus tôt (Classy, Bartik, Stable, Seven) restent disponibles en projets contrib si votre site en dépend encore.
Comment préparer un upgrade Drupal ?
Commencez par une sauvegarde complète des fichiers et de la base de données. Confirmez que l'hébergement supporte les versions PHP et base de données requises par la version Drupal cible. Mettez en place une copie locale ou staging où lancer Upgrade Status, appliquer les mises à jour Composer et tester sans impacter le trafic production.
Documentez toute personnalisation des fichiers scaffold (par exemple .htaccess ou settings.php). Drupal 11 remplace tous les fichiers scaffold du core lors de l'upgrade - les modifications intentionnelles devront être réappliquées ensuite.
Que vérifier avant un upgrade Drupal 11 ?
Utilisez cette checklist avant de planifier la fenêtre d'upgrade Drupal 11 :
- confirmer la version PHP et l'environnement d'hébergement,
- mettre Drupal core à la version intermédiaire requise (Drupal 10.3+),
- lancer Upgrade Status avant le major upgrade,
- mettre à jour les modules contrib vers des versions compatibles Drupal 11,
- analyser les modules et thèmes custom avec Upgrade Status et Rector,
- vérifier Composer, les patches et la version de Drush,
- tester les workflows éditoriaux, formulaires, intégrations et cache.
Comment mettre à jour depuis Drupal 8 ?
Drupal 8 a atteint sa fin de vie en novembre 2021. Il n'existe pas de chemin supporté de Drupal 8 directement vers Drupal 11. Planifiez un upgrade par étapes : Drupal 8 → Drupal 9 → Drupal 10.3+ → Drupal 11.
Pour la première étape, voir Drupal 8 vs Drupal 9 et l'aperçu du processus de migration de site web. Traitez chaque version majeure comme une phase de projet distincte avec tests et déploiement séparés.
Comment mettre à jour de Drupal 9 vers Drupal 10 ?
Si votre site est sur Drupal 9, la mise à jour vers Drupal 10 est l'étape intermédiaire obligatoire avant Drupal 11. Le processus comporte plusieurs phases. Notre guide Drupal 10 sur les fonctionnalités et l'upgrade détaille ce qui a changé dans cette version.
1. Mettre PHP à la version 8.1 ou supérieure
Drupal 10 exige PHP 8.1+. Avant de changer PHP sur le serveur, vérifiez que les modules contrib et le code custom supportent la version cible. PHP_CodeSniffer et PHP Compatibility aident à détecter tôt les problèmes de syntaxe et d'extensions.
2. Passer Drupal 9 à la dernière version 9.x
Allez au minimum sur Drupal 9.4.4 ; la dernière version 9.5.x est recommandée avant le saut vers Drupal 10 :
composer update "drupal/core-*" --with-all-dependencies
drush cr -y
drush updb -y
drush cex -y3. Désinstaller les thèmes core dépréciés
Classy, Bartik, Stable et Seven ont été retirés du core Drupal 10. Désinstallez-les sous /admin/appearance s'ils sont encore actifs. Si des thèmes custom les étendent, installez les remplacements contrib :
composer require drupal/seven
composer require drupal/classy
composer require drupal/bartik
composer require drupal/stable4. Migrer vers CKEditor 5
Drupal 10 utilise CKEditor 5 par défaut. Le nouvel éditeur a été réécrit - tous les plugins CKEditor 4 n'ont pas d'équivalent direct. Vérifiez la compatibilité des plugins dans la documentation CKEditor 5 avant de changer les formats sous /admin/config/content/formats. Ensuite, désinstallez l'ancien module CKEditor.
5. Mettre à jour les modules avec Upgrade Status
Installez et activez Upgrade Status, puis scannez sous /admin/reports/upgrade-status :
composer require drupal/upgrade_status
drush en upgrade_status -yCorrigez les problèmes signalés dans le code custom. Mettez à jour les modules contrib vers des versions compatibles Drupal 10. S'il n'existe pas encore de release compatible, consultez la file d'issues, appliquez des patches ou utilisez le plugin Drupal Lenient Composer :
composer require mglaman/composer-drupal-lenient
composer config --merge --json extra.drupal-lenient.allowed-list '["module_name"]'Résolvez les problèmes de compatibilité jusqu'à ce qu'Upgrade Status affiche un résultat propre pour la cible Drupal 10.
6. Mettre Drupal core à la version 10
Passez en revue composer.json et retirez les patches obsolètes. Puis mettez à jour les contraintes core :
composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
composer require 'drush/drush:^12' --no-update
composer update
drush cr -y
drush updb -y
drush cex -ySi vous utilisez drupal/core-dev, ajoutez --dev à la ligne core-dev. En cas de conflits de dépendances, lancez d'abord composer update --dry-run.
7. Tester en local, puis déployer
Testez formulaires, navigation, workflows éditoriaux, intégrations et cache en local ou staging. Déployez sur un serveur de test avant la production. Revérifiez hébergement et sauvegardes juste avant le basculement production.
Comment mettre à jour de Drupal 10 vers Drupal 11 ?
Une fois le site sur Drupal 10.3.0 ou plus récent, vous pouvez préparer l'upgrade Drupal 11. Drupal.org retire les hooks de mise à jour des releases antérieures à 10.3 - cette étape intermédiaire est obligatoire.
1. Confirmer PHP 8.3+ et l'hébergement
Drupal 11 exige PHP 8.3.0 ou plus récent. Mettez PHP à jour sur staging d'abord et relancez votre suite de tests avant la production.
2. Résoudre modules dépréciés et changements scaffold
Désinstallez ou remplacez les modules core que Drupal 11 retire (Book, Forum, Statistics et autres listés ci-dessus). Notez toute règle custom dans les fichiers scaffold pour la restaurer après l'upgrade.
3. Mettre à jour le code contrib et custom
Relancez Upgrade Status contre la cible Drupal 11. Mettez chaque module contrib à une version compatible :
composer require drupal/webform:^6.2 --no-updatePour le code custom, utilisez Drupal Rector avec Upgrade Status pour remplacer les API dépréciées. Si un module nécessite une version pont, élargissez les contraintes, par exemple "drupal/linkit": "^6.1 || ^7.0".
4. Mettre à jour core et Drush avec Composer
Depuis la racine Drupal, ouvrez les droits d'écriture sur les fichiers settings, puis mettez à jour les contraintes :
chmod u+w web/sites/default
chmod u+w web/sites/default/*settings.php
chmod u+w web/sites/default/*services.yml
composer require 'drupal/core-recommended:^11' \
'drupal/core-composer-scaffold:^11' \
'drupal/core-project-message:^11' --no-update
composer require 'drupal/core-dev:^11' --dev --no-update
composer require 'drush/drush:^13' --no-update
composer update --dry-run
composer update
drush updatedb:status
drush updatedb
drush cex -y
chmod 755 web/sites/default
chmod 644 web/sites/default/*settings.php
chmod 644 web/sites/default/*services.yml5. Tests post-upgrade
Exportez la configuration, lancez les tests automatisés si disponibles, parcourez les parcours critiques et suivez les logs avec drush watchdog:tail. Exécutez cron et vérifiez recherche, cache et envoi de formulaires.
Quels problèmes peuvent survenir lors d'un upgrade Drupal ?
Même bien préparé, un upgrade fait remonter des problèmes prévisibles. Les connaître à l'avance fait gagner du temps de débogage.
Fonctions dépréciées et retirées
Du code qui fonctionnait sous Drupal 9 peut appeler des API retirées dans Drupal 10 ou 11. Upgrade Status et Rector aident à localiser et corriger ; les modules contrib peuvent nécessiter des patches depuis leur file d'issues.
accessCheck() requis sur les entity queries
Drupal 10+ exige ::accessCheck() sur les content entity queries avant exécution. Des appels manquants provoquent des erreurs runtime dans le code custom et contrib.
jQuery once retiré
Le plugin jQuery once a été retiré du core. Remplacez core/jquery.once par core/once dans les fichiers libraries.yml et utilisez la fonction once() en JavaScript au lieu de $.once().
Modules contrib incompatibles
S'il n'existe pas encore de release Drupal 11, consultez la file d'issues, appliquez un patch communautaire ou utilisez temporairement l'endpoint Lenient Composer. À lire aussi : pourquoi un upgrade depuis d'anciennes versions Drupal vaut le coup, même quand des modules manquants allongent le calendrier.
Conflits de dépendances Composer
Patches, pins core explicites et contraintes obsolètes bloquent souvent composer update. composer why-not drupal/core ^11 liste les bloqueurs - résolvez-les avant le dry run.
Quelles commandes Composer aident pour un upgrade Drupal ?
Ces commandes reviennent souvent sur le chemin d'upgrade Drupal 11 :
- composer why-not drupal/core ^11 - liste les paquets qui bloquent une montée de core.
- composer require 'drush/drush:^13' --no-update - prépare Drush sans installer immédiatement.
- composer update --dry-run - simule la mise à jour et expose les conflits.
- composer update "drupal/core-*" drush/drush --with-all-dependencies - limite la mise à jour au core et Drush si nécessaire.
Besoin d'aide pour planifier un passage serein à Drupal 11 ?
Passer de Drupal 8, 9 ou 10 à Drupal 11 est un projet multi-étapes : versions core intermédiaires, mises à jour PHP, compatibilité des modules et tests par paliers. Les équipes qui sautent la planification sous-estiment souvent le travail sur le code custom et les modules contrib entre versions majeures.
Si vous avez besoin d'aide pour cadrer ou exécuter l'upgrade, notre équipe réalise des audits de readiness Drupal 10/11, des mises à jour Composer et des déploiements production. Consultez nos services de préparation et mise à jour Drupal 10/11 ou notre agence Drupal pour un accompagnement après la mise en production.