Notre

blog

Comment migrer d’un site Drupal 7 en Drupal 9 ?

Comment migrer d’un site Drupal 7 en Drupal 9 ?

Le CMS Drupal ne vous est sûrement pas inconnu. En 2022, nous comptons encore 55% des sites Drupal en version 7. Pourquoi migrer vers la version 9 et comment ? 

La disparition de Drupal 7

Bien que reportée à plusieurs reprises, la fin de vie de la version 7 est désormais fixée au 05 janvier 2025. Ces reports ne changent finalement guère la problématique : un jour prochain Drupal 7 disparaîtra.

Pour une entreprise, vivre avec cette épée de Damoclès est un risque trop important et migrer votre site est plus que jamais d’actualité

Les avantages de Drupal 9 

Attendre, c’est prendre le risque de se faire distancer par les évolutions web.

Drupal 9 offre de nombreuses nouvelles fonctionnalités : 

  • Mise à jour des dernières versions de Twig et Symfony ; 
  • Meilleure sécurité ;
  • Amélioration de la performance globale ; 
  • Gestion multilingue poussée ;
  • Migration simplifiée. 

De plus, il ne faudra plus attendre pour obtenir les nouvelles fonctionnalités. Elles sont disponibles tous les 6 mois, ce qui n’est pas le cas sur D7 et D8. 

Cette migration peut aussi être source d’opportunités. C’est peut-être le moment de penser à un nouveau design plus actuel ou d’améliorer l’expérience utilisateur… 

Drupal 9 : Point de passage obligé 

En effet, depuis maintenant un peu plus d’un an la version de Drupal 10 est sortie. Celle-ci apporte :

  • Mises à jour des dépendances principales (Symfony 4 à 6), CKEditor 4 à 5, Twig 2 à 3 ;
  • PHP 8.1 ;
  • Un nouveau thème plus clair et moderne. 

Cependant, la migration vers Drupal 9 reste nécessaire lorsque vous souhaitez mettre à jour votre version de Drupal

Déroulé de la migration 

Il existe deux façons de migrer un site de Drupal 7 en 9 : 

  • Mettre à jour le site en utilisant les scripts fournis par le cœur de Drupal ;
  • Créer entièrement un nouveau site Drupal 9 et tenter de récupérer les contenus de Drupal 7

Chez Elosi, nous vous conseillons la seconde option. Profitez-en pour re-questionner l’existant pour une refonte complète. 

En choisissant la première option, vous risquez de passer à côté d’anciennes fonctionnalités, de ne pas pouvoir les appliquer aux nouveaux modules qui ne sont pas identiques. 

Les étapes clés de la migration : 

Les pré-requis 

Pour passer de la version 7 à la version 9, quelques pré-requis sont nécessaires : 

  • Mettre son Drupal 7 dans sa dernière version disponible (7.98) ; 
  • Vérifier si les modules installés sur la version 7 de Drupal sont également disponibles dans la version 9, ou vérifier l’existence d’une équivalence/alternative. Si non, il reste possible de développer ces modules soi-même ; 
  • Préparer un backup de la base de données. 

Ensuite, il faudra créer son nouveau site Drupal 9 en version 9.5. Dernière version en date qui est également préconisé pour le passage en Drupal 10.

Récupération des contenus

Une fois, ces actions effectuées, deux options s’offrent à nous pour récupérer nos contenus : 

  1. Utiliser les commandes de migration des contenus et autres entités afin de générer les différents types de contenu et les remplir avec les données ; 
  2. Drupal nous offre la possibilité de switcher entre différentes bases de données afin de récupérer les contenus de l’ancien site et les créer dans le nouveau. 
    Cette méthode demande que tous les types de contenus soient déjà créés et qu’il ne reste plus qu’à les alimenter. 

Chez Elosi, nous avons utilisé la première méthode. 

Pour effectuer les imports des données, nous utilisons le module migrate-upgrade. Ce module va nous permettre de lancer les commandes de récupération de contenus du Drupal 7 et de les transférer vers le Drupal 9. 

Voici comment s’organise cette commande : 

drush migrate:import --group=nom_du_groupe --execute-dependencies
  • Drush : interface de ligne de commande et de scripting pour Drupal
  • migrate:import : le module qui va nous permettre d’effecturer notre migration
  • –group : option pour migrer certains types de contenu qui appartiennent à ce groupe
  • –execute-dependencies : option qui permet de lancer toutes les migrations qui sont nécessaires au bon fonctionnement de notre commande. 

Évidemment, cette commande est à exécuter autant de fois que vous avez de groupes. 

Nous avons choisi de découper notre migration en différents groupes afin de mieux maîtriser la migration des nodes, des taxonomies, des collections, des médias, etc. 

Et si des erreurs apparaissent ? 

Si vous rencontrez des erreurs lors de vos migrations de données, il est possible d’effectuer des rollback avec la commande suivante :

drush migrate:rollback --group=nom_du_groupe

Afin d’éviter les erreurs de migration, nous vous conseillons de monter en environnement de tests similaire au site qui est en production. 

Nous avons migré certaines de nos données à la main en utilisant la deuxième méthode. 

En effet, dans notre site initial en Drupal 7, le module scald_atom était utilisé pour gérer les médias. Or avec Drupal 9, les médias sont maintenant gérés directement depuis le core de Drupal. 

Lors de la récupération de contenus Drupal 7, nous avons rencontré un problème avec les images liées aux contenus.

Pour résoudre cette problématique, nous avons donc : 

  • Parcouru les nodes du Drupal 7 ; 
  • Récupéré les ids des Medias ; 
  • Set les bons champs au niveau du Drupal 9 afin de faire correspondre les bons médias avec les bons contenus. 

Une fois toutes les actions réalisées, vous devriez avoir un Drupal 9 comportant vos contenus issus de votre Drupal 7.

Planifier sa migration avec Elosi 

Comme dit précédemment, une migration prend du temps, il vaut mieux anticiper et la maitriser que de se précipiter

Grâce à notre expérience dans ce domaine, nous vous accompagnons de A à Z dans votre projet : étude de l’existant, définition des besoins, maquette, UX, gestion de la migration… 

Nous maitrisons vos coûts et sécurisons votre migration. 

Vous n’êtes pas en D7 ? Nous sommes également disposés à vous aider dans la création complète de votre site en D9. 

Contactez-nous dès maintenant !