Rollin Logo
Migration de Drupal 7 vers Drupal 11 : Guide technique complet

Migration de Drupal 7 vers Drupal 11 : Guide technique complet

Alex Rollin
Alex Rollin
2025-07-03
Dernière mise à jour: 2025-07-04
Avec Drupal 7 qui est désormais en fin de vie depuis janvier 2025 et le support de Drupal 10 qui se termine vers 2026, les organisations font face à une décision critique : migrer vers Drupal 11 ou risquer des vulnérabilités de sécurité et des problèmes de compatibilité. Cette migration représente plus qu'une simple mise à niveau—c'est une reconstruction complète qui nécessite une planification minutieuse, une expertise technique et une exécution systématique.

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 %}
    
{{ author_picture }} {% trans %}Par {{ author_name }}{% endtrans %}
{% 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.

Partager cet article

Prêt à commencer
votre projet?

Notre équipe de développement est prête à transformer votre vision en réalité et à donner vie à votre prochaine innovation.