Petite histoire de Drupal et conseils préliminaires
Depuis Drupal 6, des versions supérieures sont proposées tous les 3 ans environ. Il faut y voir le signe d’une solution dynamique et attentive à répondre aux besoins de ses utilisateurs. Chaque mise à jour est facilitée par la grande simplicité du système Drupal, mais également par la présence du support et de la communauté toujours prompte à aider et à accompagner.
En savoir plus sur le CMS Drupal
✚ Comprendre le fonctionnement ETL de Drupal
La migration est un processus ETL (Extract, Transform, Load). Dans l'API de migration de Drupal, la phase d'extraction est appelée source, la phase de transformation est appelée processus et la phase de chargement est appelée destination.
Il est important de comprendre que le terme "chargement" en ETL signifie charger des données dans le stockage, tandis que dans un contexte Drupal typique, le terme "chargement" fait référence au chargement de données à partir du stockage.
Dans la phase source, un ensemble de données, appelé ligne, est récupéré de la source de données. Les données peuvent être migrées à partir d'une base de données, chargées à partir d'un fichier (par exemple CSV, JSON ou XML) ou récupérées à partir d'un service Web (par exemple RSS ou REST).
La ligne est envoyée à la phase de traitement où elle est transformée si nécessaire ou marquée pour être ignorée. Après le traitement, la ligne transformée est transmise à la phase de destination où elle est chargée (enregistrée) dans le site Drupal cible.
Bien préparer sa migration : les bonnes pratiques à connaître
De quel volume de données parle-t-on ?
Si le volume est relativement faible, il peut être plus simple d’envisager une re-saisie directement dans le back-office de la version ultérieure ou quelques copier-coller. Vous pouvez arbitrer en nombre de jours nécessaires. Si le déplacement de données peut s’effectuer en 2 ou 3 jours c’est évidemment plus intéressant que 4 jours de développement.
Bien préparer son fichier de migration
Analysez votre fichier de données d'origine pour identifier les informations clés à migrer. Évaluez les données à migrer en fonction de leur pertinence, de leur qualité et de leur volume. Il peut être utile de créer un plan de migration détaillé pour identifier les données que vous souhaitez migrer en priorité. Ce fichier doit contenir : un id (obligatoire) qui permet d’identifier la migration, un label, mais aussi un ou plusieurs tags, des dépendances pour ordonner l’exécution de migrations liées.
Vérifiez la qualité de vos données
Avant de migrer, il est important de nettoyer et de normaliser vos données pour garantir leur cohérence. Assurez-vous également qu’elles soient conformes aux normes de la nouvelle version de Drupal, par exemple, les formats de date et les types de champs.
Petite présentation des versions majeures
✚ Drupal 6, le commencement
Débutons par la Préhistoire de ce système de gestion de contenu (CMS). Cette version est sortie en 2008. Elle offrait des fonctionnalités visant à aider les (premiers) internautes à créer et à gérer des sites web complexes, tels que des forums, des blogs, des galeries d'images, des sondages ou des annuaires.
Dès le début, Drupal 6 présentait une interface utilisateur simplifiée. Cette version a également introduit des options de sécurité, ainsi que des améliorations dans le processus de création de modules personnalisés. Depuis la fin du support officiel en février 2016, Drupal 6 n'est plus maintenu.
✚ Drupal 7, une longue histoire
Cette version est sortie en 2011 et a brillé par sa longévité, puisque la date de sa fin de vie a été repoussée jusqu’à 2023. Elle a offert de nombreuses améliorations par rapport à Drupal 6, telles qu'une meilleure gestion des images, des fichiers et des champs personnalisés, ainsi que des fonctionnalités de configuration simplifiées et améliorées notamment pour les utilisateurs qui ne disposaient pas de connaissances techniques.
Les étapes de la migration de Drupal 7 vers Drupal 8
Voici donc les étapes successives pour installer cette version du CMS :
- Commencez par télécharger la solution sur le site officiel et installez un nouveau serveur ou une nouvelle instance de développement pour effectuer la migration.
- Une fois Drupal 8 installé, la migration des données peut commencer.
- Après avoir migré les données, penchez-vous sur les fonctionnalités personnalisées et les thèmes. Vérifiez qu’ils sont bien compatibles pour Drupal 8.
- Après avoir migré, il est important de tester le site pour s'assurer que tout est correctement intégré et qu’il fonctionne comme d’habitude.
✚ Drupal 8, les grands changements
Drupal 8 a été lancé en novembre 2015, environ quatre ans après la sortie de Drupal 7. Cette version a été la première à intégrer les bibliothèques Symfony, un ensemble de composants PHP et une plus grande prise en compte des api.
L'intégration de Symfony a permis une amélioration significative de la performance et de la qualité du code de Drupal 8, ainsi qu'une meilleure expérience de développement pour les techniciens.
Drupal 8 a également apporté des améliorations significatives en matière d'accessibilité, de gestion des langues, de SEO et d'expérience utilisateur.
Les étapes de la migration de Drupal 8 vers Drupal 9
La migration de Drupal 8 vers Drupal 9 est relativement simple et peut être effectuée en suivant les étapes suivantes :
→ Avant de commencer la migration, il est important de réaliser un travail de mise à jour du site vers la dernière version mineure. Cette étape est cruciale car Drupal 9 utilise des bibliothèques et des dépendances qui sont déjà présentes dans Drupal 8.9.x.
Avant de procéder à la migration, il est également recommandé de réaliser une analyse de compatibilité des modules personnalisés et des thèmes. Drupal 9 utilise les mêmes outils de migration que Drupal 8, ce qui signifie que vous pouvez migrer les contenus, les configurations et les données du site directement depuis Drupal 8. Cela facilite grandement le processus.
Une fois la migration terminée, il est temps de mettre à jour les modules personnalisés et les thèmes pour les rendre compatibles avec Drupal 9. Les développeurs peuvent utiliser des outils d’automatisation pour cette étape.
Les outils pour la migration de Drupal 8 vers Drupal 9
Tout a été prévu pour rendre le passage à la version supérieure simple et accessible. Il est, par exemple, possible d’utiliser l'outil natif de Drupal qui est inclus dans Drupal 8 et Drupal 9, et qui permet de migrer les contenus, les configurations et les données du site comme les commentaires, les blocs, les menus, les utilisateurs, les taxonomies, etc.
Il est également possible d'utiliser des outils tiers pour la migration, tels que le module Migrate Upgrade, notamment pour les thèmes et les modules personnalisés. De plus, l'outil de vérification de compatibilité de Drupal, appelé Upgrade Status, est à votre service. Il permet d’en vérifier la compatibilité avec Drupal 9 et de fournir des recommandations pour rendre ces éléments compatibles le cas échéant.
Les étapes de la migration de Drupal 8 vers Drupal 10
Pas si simple de brûler les étapes. Drupal 9 est une version majeure et un grand nombre d’éléments obsolètes ont été retirés. Pour profiter de Drupal 10, il faudra donc transiter par la neuvième version du CMS.
Pour en savoir plus sur la migration vers Drupal 10, découvrez notre article dédié.
✚ Drupal 9, une version flexible et efficace
Drupal 9 a été publié en juin 2020, c’est une version qui se concentre notamment sur l'amélioration de la convivialité, de la sécurité, de la performance et de la compatibilité avec des technologies comme Symfony 4, Twig 2, les bibliothèques JavaScript modernes telles que React et Vue.js ou encore HTML5 et CSS3. Drupal 9 est construit sur une architecture moderne et flexible qui permet une personnalisation très complète.
Pour en savoir plus sur la migration vers Drupal 10, découvrez notre article dédié Tout savoir de Drupal 10.
Les étapes clés d'une migration réussie
✚ L'installation du module Drupal 8 Upgrade Status : la bonne idée
Drupal 8 Upgrade Status est un module pour Drupal 8 qui aide à migrer vers Drupal 9. Il fournit une analyse détaillée de la compatibilité du code utilisé. Il les analyse pour identifier les éléments qui nécessitent d’être mis à jour avant la migration.
Drupal 8 Upgrade Status génère ensuite des rapports détaillés sur la compatibilité des modules, des thèmes et des bibliothèques tierces utilisés sur votre projet Drupal 8, indiquant s'ils sont compatibles avec Drupal 9 ou s'ils nécessitent d’être mis à jour. Ces rapports incluent des instructions claires sur les versions compatibles avec Drupal 9, ainsi que des instructions sur la manière de les installer et de les configurer.
Bref. Drupal 8 Upgrade Status est un atout à avoir dans sa manche avant de débuter la migration.
✚ Vérifiez la compatibilité des développements custom
Vous avez du code custom au sein de votre projet ? Pour vous assurer de sa comptabilité avec Drupal 9, vous pouvez utiliser des outils d'analyse de code tels que PHP_CodeSniffer ou PHPMD pour vous aider à identifier les problèmes potentiels. Puis, pensez à effectuer des tests pour vous assurer que toutes les fonctionnalités fonctionnent correctement après la migration.
✚ La mise à jour des versions dans le fichier composer.json
Pour mettre à jour les versions des modules et des dépendances dans le fichier composer.json de Drupal 8 vers Drupal 9, vous pouvez utiliser la commande composer requise suivi du nom du module et de la version requise.
Par exemple, pour mettre à jour le module "views", vous pouvez utiliser la commande drupal/views:^9.0. Ensuite, exécutez la commande composer update.
✚ Les différentes façons de migrer
Avant de migrer, il est important de sauvegarder tous les fichiers et toutes les données de votre site. Vous pouvez ensuite, procéder de 3 manières différentes :
La migration manuelle : cette méthode implique de télécharger manuellement la dernière version de Drupal 9 et de copier les fichiers et les données du site Drupal 8 vers le nouveau. Cette méthode est plus adaptée aux sites simples et de petite taille.
La migration avec l'interface web : Drupal 9 propose une interface de migration qui permet de réaliser l’import des données, les modules et les thèmes. Il suffit de se laisser guider. Cette méthode est plus adaptée aux sites de taille moyenne.
Enfin, la migration en ligne de commande de Drupal 8 vers Drupal 9 implique l'utilisation de la commande drush. Voici les étapes à suivre : assurez-vous que votre serveur répond aux prérequis de la version supérieure et installez Drush.
Téléchargez Drupal 9 et décompressez-le dans un dossier de votre serveur. Exécutez la commande composer install dans le dossier pour installer toutes les dépendances requises. Exécutez la commande drush migrate-upgrade pour commencer la migration de Drupal 8 vers Drupal 9. Cette méthode est évidemment celle qui nécessite le plus de compétences techniques. Elle est donc à réserver aux utilisateurs aguerris. Une fois cette action effectuée, réalisez toujours des tests approfondis pour vous assurer que tout fonctionne correctement.
✚ Utilisez les outils pour la migration de données
Ces outils permettent aux développeurs de les déplacer de manière efficace et sans risque. Parmi ces outils, Migrate Plus fournit des features supplémentaires, telles que des plugins d'importation de données, des fichiers de configuration et des définitions de processus de migration.
Migrate Tools, quant à lui, fournit un ensemble d’outils pratiques qui permettent la mise en place, la suppression et l'exécution de migrations ou la gestion des messages d'erreur. Enfin, Migrate Upgrade de son côté fournit une interface graphique pour la migration.
Alors, prêt à migrer ?
Si migrer peut sembler contraignant et fastidieux, cette action offre toujours de nombreux avantages, au-delà même de maintenir un environnement à jour. Cela permet de maintenir une sécurité renforcée, d’offrir une meilleure convivialité, ainsi qu’une plus grande compatibilité et des performances améliorées.
Vous pourrez, par ailleurs, bénéficier d'un support sur le long terme en cas d’interrogation. Notre équipe d’experts se tient par ailleurs à votre disposition pour vous accompagner dans cette démarche ou pour plus d’informations.