Mise à jour de Drupal 8 vers Drupal 9 : le mode d'emploi
Cela signifie que si vous n'avez pas encore migré vers Drupal 9, vous avez tout intérêt à vous lancer sans plus attendre !
Nous décrivons ici les étapes nécessaires pour effectuer la mise à jour de Drupal 8 vers Drupal 9, à savoir : l'installation du module upgrade status, la mise à jour des modules contrib puis des modules custom et enfin la mise à jour du Core vers Drupal 9.
Voici pour commencer les pré-requis système :
- Nginx : version 0.7.x minimum ;
- Apache : version 2.4.7 minimum ;
- PHP :
- PHP 7.3 à 7.4 ;
- PHP 8 : à partir de Drupal 9.1.
- Base de données :
- MySQL ou Percona : version 5.7.8 minimum ;
- MariaDB : version 10.3.7 minimum ;
- SQLite : version 3.26 minimum ;
- PostgreSQL : version 10 minimum.
1. L'installation du module "Upgrade Status"
Pour aider à la migration, il existe un module contrib "Upgrade Status", capable d'analyser le projet Drupal et de fournir un rapport de compatibilité.
Installez le module avec composer (et activez-le) :
composer require 'drupal/upgrade_status'
Depuis le back office (/admin/reports/upgrade-status
) vous pouvez consulter le rapport d'analyse :
Le rapport se compose de 5 grandes parties :
- Les pré-requis (systèmes et configurations) ;
- Les modules installés compatibles ;
- Les modules installés, compatibles en effectuant une mise à jour ;
- Les modules installés non compatibles (modules contrib dont il n'existe aucune version compatible) ;
- Les modules installés dont la comptabilité n'a pas pu être déterminée (modules custom principalement).
L'étape suivante consiste à corriger tous les points relevés :
- Corriger les pré-requis ;
- Mettre à jour les modules contrib compatibles ;
- Déterminer une stratégie pour les modules contrib non compatibles : développement d'un patch, remplacement du module par un autre, développer un module custom équivalent ou bien décider de se passer de la fonctionnalité ;
- Corriger le code des modules custom pour les rendre compatibles.
2. La mise à jour des modules contrib
Le rapport fournit pour chaque module compatible, la version à installer et le lien version des "issues" connues. Il suffit simplement d'effectuer les mises à jour avec composer.
3. La mise à jour des modules custom
Pour la mise à jour des modules custom, utilisez l'outil de scan. Sélectionnez un module dans la liste et lancez un scan. L'outil vous indique quelles corrections apporter :
Une fois que tous les problèmes ont été corrigés, vous pouvez passer à la montée de version du Core.
4. La mise à jour du Core vers Drupal 9
Avec composer, on requière les packages nécessaires :
composer require 'drupal/core-recommended:^9' 'drupal/core-composer-scaffold:^9' 'drupal/core-project-message:^9' --update-with-dependencies --no-update
Pour éviter les problèmes de dépendance mutuelle, ne faites pas immédiatement la mise à jour des paquets (option --no-update
). Modifiez seulement le fichier composer.json
.
Si drupal/core-dev
est utilisé dans le projet :
composer require 'drupal/core-dev:^9' --dev --update-with-dependencies --no-update
Vous pouvez maintenant lancer la mise à jour :
composer update
Pour finir, exécutez les commandes drush :
drush updatedb
drush cr
Vous avez maintenant effectué la mise à jour de Drupal 8 vers Drupal 9 !
Si vous rencontrez quelques difficultés techniques, notamment pour la migration vers Drupal 9, faites appel à nos experts Drupal.