Contrairement aux mises à niveau précédentes de Drupal, passer de la version 7 à 11 implique de migrer vers une base architecturale entièrement différente. En travaillant avec nos clients à travers ces migrations, nous avons appris que le succès dépend d'une préparation approfondie et de la compréhension des complexités techniques impliquées.
Ce guide fournit la feuille de route pratique dont vous avez besoin pour exécuter une migration réussie de Drupal 7 vers 11, de l'évaluation initiale à l'optimisation post-lancement.
Comprendre le paysage de la migration
Pourquoi ce n'est pas qu'une mise à niveau
La transition de Drupal 7 à 11 représente un changement architectural fondamental. Drupal 8 a introduit les composants Symfony, la programmation orientée objet et le système de gabarits Twig—des changements qui rendent les mises à niveau directes impossibles. Au lieu de cela, vous effectuez une migration qui implique :
- Reconstruire la structure de votre site sur Drupal 11
- Migrer le contenu et les données de configuration
- Réécrire les modules et thèmes personnalisés
- Mettre à jour les intégrations et flux de travail
Avantages techniques de Drupal 11
Drupal 11 introduit plusieurs améliorations techniques convaincantes :
Améliorations de performance : Construit sur Symfony 7 et PHP 8.3, Drupal 11 offre une exécution plus rapide et une meilleure gestion de la mémoire. Le nouveau système de cache fournit des gains de performance significatifs pour les sites à fort trafic.
Améliorations de sécurité : Des mises à jour de sécurité régulières, des systèmes d'authentification améliorés et une meilleure protection contre les vulnérabilités courantes rendent Drupal 11 significativement plus sécurisé que les versions héritées.
Expérience éditoriale : Le nouveau thème administratif Claro et CKEditor 5 fournissent une expérience d'édition de contenu plus intuitive, réduisant le temps de formation pour les équipes éditoriales.
Expérience de développement : Les composants de répertoire unique, les API améliorées et de meilleurs outils de débogage rendent le développement plus efficace et maintenable.
Évaluation pré-migration et planification
Audit des exigences techniques
Avant de commencer votre migration, vérifiez que votre infrastructure répond aux exigences de Drupal 11 :
Exigences serveur :
- PHP 8.3 avec extension zlib
- MySQL 8.0 ou MariaDB 10.6
- Apache 2.4.7 (IIS n'est plus pris en charge)
- Composer 2.7.7
- Drush 13
Inventaire du contenu et du code :
Créez un inventaire complet de votre site actuel incluant :
- Tous les types de contenu et champs personnalisés
- Rôles utilisateur et permissions
- Modules contributifs et personnalisés
- Personnalisations de thème
- Intégrations tierces
- Tables ou structures de base de données personnalisées
Évaluation de la compatibilité des modules
Notre équipe recommande d'utiliser le module Upgrade Status pour évaluer la préparation de votre site actuel à la migration :
drush en upgrade_status drush upgrade_status:analyze
Cette analyse révèle quels modules ont des équivalents Drupal 11 et identifie le code personnalisé nécessitant des mises à jour. Basé sur des projets clients, attendez-vous à ce qu'environ 70-80% des modules contributifs aient des équivalents directs ou des alternatives appropriées.
Stratégie de contenu et nettoyage
Les projets de migration fournissent une excellente opportunité pour nettoyer votre architecture de contenu. Nous aidons les clients à identifier :
- Les types de contenu obsolètes qui peuvent être consolidés
- Les champs et taxonomies inutilisés
- Les fichiers et médias orphelins
- Les comptes utilisateur et rôles redondants
Ce nettoyage réduit la complexité de migration et améliore les performances de votre nouveau site.
Configuration de votre environnement de migration
Préparation de l'environnement
Commencez par créer un environnement de migration dédié qui reflète votre configuration de production :
# Créer un nouveau site Drupal 11 composer create-project drupal/recommended-project drupal11_migration cd drupal11_migration # Installer les modules de migration requis composer require drupal/migrate_plus drupal/migrate_tools drush en migrate migrate_drupal migrate_drupal_ui migrate_plus migrate_tools
Configuration d'accès à la base de données
Assurez-vous que votre environnement Drupal 11 peut accéder à votre base de données Drupal 7. Cela implique typiquement :
- Créer un utilisateur de base de données en lecture seule pour la base de données D7
- Configurer l'accès réseau entre les environnements
- Tester la connectivité avant de procéder
# Tester la connexion à la base de données drush sql-query --database=migrate "SELECT COUNT(*) FROM users" --legacy-db-url=mysql://user:pass@host/d7db
Exécution de la migration
Migration du contenu principal
Le processus de migration implique plusieurs phases distinctes. Notre approche suit typiquement cette séquence :
Phase 1 : Migration de structure
# Migrer les utilisateurs et rôles en premier drush migrate:import upgrade_d7_user_role drush migrate:import upgrade_d7_user # Migrer la taxonomie drush migrate:import upgrade_d7_taxonomy_vocabulary drush migrate:import upgrade_d7_taxonomy_term # Migrer les types de contenu et champs drush migrate:import upgrade_d7_node_type drush migrate:import upgrade_d7_field
Phase 2 : Migration de contenu
# Migrer les nœuds par type de contenu drush migrate:import upgrade_d7_node:article drush migrate:import upgrade_d7_node:page drush migrate:import upgrade_d7_node:custom_type # Migrer les commentaires et autre contenu drush migrate:import upgrade_d7_comment drush migrate:import upgrade_d7_menu_links
Phase 3 : Fichiers et médias
# Migrer les fichiers et médias drush migrate:import upgrade_d7_file drush migrate:import upgrade_d7_file_entity
Gestion des migrations complexes
Pour les sites avec des structures de données complexes, vous pourriez avoir besoin de plugins de migration personnalisés. Voici un exemple de configuration de migration personnalisée :
# Migration personnalisée pour données de champ complexes id: custom_field_migration label: Migration de champ personnalisé migration_group: migrate_drupal_7 source: plugin: d7_database query: - SELECT nid, field_custom_data_value, field_custom_data_format - FROM field_data_field_custom_data - WHERE bundle = 'custom_content_type' process: nid: nid field_processed_data: plugin: callback callable: custom_data_processor source: field_custom_data_value destination: plugin: entity:node default_bundle: custom_content_type
Gestion de l'état de migration
Surveillez votre progression de migration en utilisant ces commandes essentielles :
# Vérifier le statut de migration drush migrate:status --group=migrate_drupal_7 # Afficher des informations détaillées de migration drush migrate:messages upgrade_d7_node # Annuler une migration spécifique si nécessaire drush migrate:rollback upgrade_d7_node # Réinitialiser le statut de migration drush migrate:reset-status upgrade_d7_node
Migration de code personnalisé
Mises à jour de développement de modules
Les modules personnalisés nécessitent des mises à jour significatives pour la compatibilité Drupal 11. Les changements clés incluent :
Mises à jour du système de hooks : Plusieurs hooks ont été remplacés par des abonnés d'événements ou des services.
// Approche Drupal 7 function mymodule_node_insert($node) { // Logique personnalisée } // Approche Drupal 11 class MyModuleEventSubscriber implements EventSubscriberInterface { public function onNodeInsert(EntityInsertEvent $event) { // Logique personnalisée } }
Changements de l'API de base de données : Les requêtes directes de base de données doivent être mises à jour pour utiliser la nouvelle API de base de données.
// Drupal 7 $result = db_query("SELECT nid FROM {node} WHERE type = :type", array(':type' => 'article')); // Drupal 11 $query = \Drupal::database()->select('node_field_data', 'n'); $query->fields('n', ['nid']); $query->condition('n.type', 'article'); $result = $query->execute();
Migration de thème
Les thèmes Drupal 7 sont incompatibles avec Drupal 11 et doivent être reconstruits en utilisant les gabarits Twig. Notre équipe approche typiquement la migration de thème en :
- Analysant les fichiers de gabarit existants et identifiant les composants clés
- Créant de nouveaux gabarits Twig qui correspondent au design désiré
- Implémentant des améliorations de design adaptatif
- Optimisant pour la performance et l'accessibilité
{# Exemple de gabarit Twig Drupal 11 #}{% if display_submitted %} {% endif %} {{ content }}
Optimisation post-migration
Configuration de performance
Après la migration, optimisez votre site Drupal 11 pour la performance :
Configuration de cache :
# Activer les modules de performance drush en page_cache dynamic_page_cache big_pipe # Configurer les paramètres de cache drush config:set system.performance cache.page.max_age 86400 drush config:set system.performance css.preprocess true drush config:set system.performance js.preprocess true
Optimisation de base de données :
# Reconstruire les index de recherche drush search-api:index # Vider tous les caches drush cache:rebuild
Structure d'URL et référencement
Maintenez la valeur SEO de votre site en préservant les structures d'URL :
# Installer le module de redirection composer require drupal/redirect drush en redirect # Importer les alias de chemin existants drush migrate:import upgrade_d7_url_alias
Pour les changements d'URL complexes, créez des règles de redirection personnalisées ou utilisez la fonctionnalité d'importation en lot du module de redirection.
Révision et nettoyage du contenu
Post-migration, effectuez une révision approfondie du contenu :
- Vérifiez que tout le contenu s'affiche correctement
- Vérifiez les références d'images et de fichiers
- Testez la fonctionnalité des formulaires
- Validez les permissions utilisateur et contrôles d'accès
- Révisez et mettez à jour toutes les références codées en dur
Tests et assurance qualité
Approche de tests automatisés
Nous recommandons d'implémenter des tests automatisés tout au long du processus de migration :
Tests de migration :
# Tester une migration spécifique drush migrate:import upgrade_d7_node --execute-dependencies # Valider les résultats de migration drush migrate:status --group=migrate_drupal_7
Tests fonctionnels : Utilisez des outils comme Behat pour les tests fonctionnels automatisés des fonctionnalités critiques du site.
Tests de performance : Effectuez des tests de charge pour vous assurer que le nouveau site performe bien sous les volumes de trafic attendus.
Liste de vérification des tests manuels
Les tests manuels complets devraient couvrir :
- Tous les types de contenu s'affichent correctement
- Processus d'inscription et de connexion utilisateur
- Soumissions de formulaires et flux de travail
- Fonctionnalité de recherche
- Interfaces administratives
- Intégrations tierces
- Adaptabilité mobile
- Compatibilité inter-navigateurs
Défis de migration courants et solutions
Problèmes de compatibilité des modules
Défi : Le module D7 requis n'a pas d'équivalent D11.
Solution : Identifiez des modules alternatifs ou développez des solutions personnalisées. Notre équipe maintient une matrice de compatibilité pour les modules courants pour rationaliser ce processus.
Défi : Les types de champs personnalisés ne migrent pas correctement.
Solution : Créez des plugins de migration personnalisés ou restructurez les données pour utiliser des types de champs compatibles.
Problèmes de performance
Défi : Le processus de migration est lent ou échoue sur de gros jeux de données.
Solution : Implémentez le traitement par lots et optimisez les requêtes de base de données. Considérez migrer le contenu en plus petits morceaux.
# Migrer par lots drush migrate:import upgrade_d7_node --limit=100 --update
Problèmes d'intégrité des données
Défi : Les relations de contenu se brisent pendant la migration.
Solution : Assurez-vous d'un ordre de migration approprié et utilisez les dépendances de migration pour maintenir les relations.
Planification de votre calendrier de migration
Attentes réalistes de calendrier
Basé sur notre expérience avec les migrations clients, les calendriers typiques incluent :
Petits sites (< 1 000 nœuds) : 2-4 semaines
Sites moyens (1 000-10 000 nœuds) : 1-3 mois
Gros sites (10 000 nœuds) : 3-6 mois
Sites d'entreprise : 6 mois
Facteurs critiques de succès
En travaillant avec les clients à travers de nombreuses migrations, nous avons identifié ces facteurs de succès :
- Alignement des parties prenantes : Assurez-vous que toutes les parties prenantes comprennent la portée et le calendrier
- Gel du contenu : Implémentez des gels de contenu pendant les phases critiques de migration
- Tests approfondis : Allouez suffisamment de temps pour les tests et l'itération
- Formation : Préparez votre équipe aux nouveaux flux de travail et interfaces
- Stratégie de sauvegarde : Maintenez plusieurs points de sauvegarde tout au long du processus
Faire valoir l'argument commercial
Analyse coût-bénéfice
Lors de la présentation de projets de migration aux parties prenantes, considérez ces facteurs :
Bénéfices immédiats :
- Sécurité et conformité maintenues
- Performance du site améliorée
- Meilleure expérience éditoriale
- Base de code moderne et maintenable
Valeur à long terme :
- Mises à niveau futures plus faciles
- Accès aux nouvelles fonctionnalités et modules
- Meilleures capacités d'intégration
- Dette technique réduite
Évaluation des risques
Rester sur Drupal 7 présente des risques significatifs :
- Vulnérabilités de sécurité sans correctifs officiels
- Problèmes de compatibilité avec les fournisseurs d'hébergement
- Difficulté à trouver des développeurs familiers avec le code hérité
- Problèmes de conformité potentiels dans les industries réglementées
Obtenir un soutien professionnel
La migration de Drupal 7 vers 11 représente une entreprise technique significative qui bénéficie d'une expertise professionnelle. Lors de l'évaluation pour savoir si gérer la migration en interne ou chercher un soutien externe, considérez :
- Complexité de votre site actuel
- Ressources de développement internes disponibles
- Contraintes de calendrier
- Tolérance au risque pour les problèmes potentiels
Notre équipe a guidé des organisations à travers des dizaines de migrations réussies, les aidant à naviguer les défis techniques tout en minimisant les temps d'arrêt et maintenant la continuité des affaires.
La migration de Drupal 7 vers 11 est plus qu'une mise à niveau technique—c'est une opportunité de moderniser votre présence numérique, améliorer la performance et préparer votre organisation pour le succès futur. Avec une planification appropriée, une exécution systématique et la bonne expertise, vous pouvez assurer une transition en douceur vers Drupal 11 qui livre des bénéfices immédiats et de la valeur à long terme.
Prêt à commencer votre migration ? Contactez notre équipe pour discuter de vos exigences spécifiques et développer une stratégie de migration personnalisée qui répond aux besoins de votre organisation.