Drupal 7 to 8 Migration - Un guide pratique qui aborde les défis de la migration (avec des recommandations)
Publié: 2020-02-27La migration vers Drupal 7 à 8 vous préoccupe ? Utilisez-vous toujours votre site Web sur Drupal 7 (ou 6) ? Il est grand temps de migrer vers Drupal 8 !
Nous avons beaucoup écrit sur les raisons pour lesquelles vous devriez migrer vers Drupal 8 si vous êtes toujours sur Drupal 7 (ou 6). Cependant, l'une de nos raisons préférées (et significatives) de migrer vers Drupal 8 est que… Drupal 9 arrive ! Et si vous souhaitez profiter des avantages de Drupal 9, il est recommandé de migrer d'abord Drupal 7 vers Drupal 8. Nous pourrions affirmer que vous devriez passer à Drupal 8 maintenant car il n'y a pas assez de temps une fois que Drupal 9 est là (juin 2020) et l'EOL de Drupal 7 (novembre 2021). Mais vous pourriez prétendre que vous pouvez opter pour un LTS (support à long terme) à la place ! Assez juste. Sauf qu'en plus de dépenser plus d'argent pour engager un fournisseur de services LTS, vous perdez également les riches avantages que Drupal 8 a à offrir. Certaines choses peuvent sembler difficiles mais sont nécessaires pour un avenir plus fort et plus simple.
Une fois sur Drupal 8, vous n'avez plus besoin de « migrer » – seule une simple « mise à jour » de Drupal 8.9 à 9, puis de 9.9 à 10 et ainsi de suite, suffira. Une migration de Drupal 7 vers Drupal 8 n'est pas toujours simple et directe ; Je suis d'accord. Suivre un processus est utile, mais vous pourriez toujours faire face à des défis lors de la migration, surtout si le modèle de contenu de votre site Web Drupal 7 est considérablement complexe. Passons en revue une migration étape par étape de Drupal 7 vers Drupal 8 avec les défis auxquels vous pourriez être confronté. Et nos recommandations pour les surmonter.
Drupal 8 Migrate – Hypothèses et préparations
« Être préparé, c'est la moitié de la victoire », a déclaré le romancier espagnol Miguel De Cervantes. Une migration vers Drupal 8 peut devenir compliquée, mais si vous avez passé suffisamment de temps à planifier la migration, les défis ne vous surprendront pas. L'adoption par Drupal 8 de nombreuses normes de développement modernes telles que Symfony, Twig, PHP 7, etc. a conduit à cette reconstruction complète, mais elle nécessite également des expériences numériques plus puissantes, robustes et flexibles. Voici quelques conditions préalables dont vous devez vous souvenir avant de commencer la migration Drupal 7 vers 8 :
- Mettez à jour votre site Web Drupal 7 vers la dernière version disponible. Cela aidera à des mises à niveau automatiques plus propres de certains des modules qui ont des chemins de mise à niveau directs vers Drupal 8.
- Assurez-vous d'avoir accès à la base de données et aux fichiers du site Drupal 7 (publics et privés).
- Créez une sauvegarde du site Web Drupal 7 et utilisez cette sauvegarde pour la migration vers Drupal 8. Il n'est pas recommandé de migrer un site Web fonctionnel en direct bien que la migration elle-même n'apporte aucune modification à la source.
- Téléchargez une nouvelle installation de Drupal 8 à partir d'ici et activez les modules Migrate de base dont nous avons parlé ci-dessus. Et rappelez-vous, il DOIT être frais! Toutes les configurations effectuées ou le contenu créé seront écrasés lors d'une mise à niveau vers Drupal 8.
- Il n'y a pas de chemin de mise à niveau direct de Drupal 7 vers Drupal 8 (contrairement aux mises à jour de versions précédentes). Familiarisez-vous avec le système de migration de Drupal 8. Les trois modules qui sont dans le noyau – le module Drupal 8 Migrate, le module Drupal 8 Migrate Drupal et le module d' interface utilisateur Drupal 8 Migrate Drupal .
- Faites votre choix de migration - utiliserez-vous Drush (qui vous donne un contrôle granulaire) ou opterez-vous pour l'interface utilisateur du navigateur (plus facile mais moins de contrôle) ?
- Connaissez votre source. La flexibilité du système de migration de contenu Drupal permet d'extraire et de charger du contenu à partir d'anciennes versions de Drupal et de diverses autres sources telles que CSV, XML, JSON, MYSQL, etc.
- Pour une migration de contenu Drupal en douceur, effectuez un audit de contenu approfondi pour identifier le contenu que vous devez migrer. Jetez le contenu inutilisé et non pertinent pour éviter de passer du temps et des efforts à les migrer.
Le processus de migration Drupal 7 à 8 (étape par étape)
Observer et planifier
Une migration de contenu Drupal en douceur nécessite d'abord d'identifier les types de contenu et la structure de contenu du site existant et de documenter les observations. Cela inclut les types de contenu, les types de champs, les blocs, les taxonomies, etc. Préparez un plan sur ce que vous devez migrer et ce qui doit être fusionné, sur la base de ces observations. Analysez les vues et autres configurations de site et cataloguez-les afin qu'il soit plus facile de les répliquer dans Drupal 8.
Créez une liste de contrôle des modules de votre site Web Drupal 7
Avec cette liste de contrôle, vous devriez être en mesure d'identifier les modules dont vous avez encore besoin, ou s'il existe une version Drupal 8 de ce module, ou si le module a maintenant migré vers Drupal 8 Core (comme le module Media). Tous les modules Drupal 7 ne peuvent pas être automatiquement migrés vers Drupal 8. Certains modules Drupal 7 peuvent avoir fusionné leurs fonctionnalités en un seul module Drupal 8. Et certains modules Drupal 7 peuvent avoir séparé leurs fonctionnalités en deux ou plusieurs modules Drupal 8. Il est toujours préférable d'analyser de tels cas pour être sûr qu'il n'y a pas de perte de données !
Recommandation d'expert - Utilisez un module comme l'interface utilisateur Drupal Migrate pour identifier les modules Drupal 7 et leur module Drupal 8 correspondant (si disponible ou non).
Astuce de pro - Aucune version de module disponible pour Drupal 8 ? Par exemple, le module ImageField de Drupal 7 n'a pas de module D8 correspondant. Nous devrons peut-être trouver la meilleure alternative disponible pour cela dans Drupal 8. Bien sûr, nous avons le module multimédia de base de Drupal 8. Cependant, nous devrons développer des scripts personnalisés pour migrer les données d'image. migrer les données d'image.
Recommandation d'expert - Si vous venez d'hériter d'un site Web D7 et que vous n'avez aucune idée des personnalisations apportées aux modules OU Si vous avez effectué vous-même des personnalisations et que vous devez les trouver, nous vous recommandons d'utiliser le Hacked ! module. Ce module passera par la liste des modules disponibles sur le site et les modifications/personnalisations apportées à chaque module.
Répliquer et construire
Répliquez les types de contenu, les taxonomies et toutes les entités requises dans votre instance D8. Les vues doivent être créées manuellement une fois que vous avez créé et répliqué le contenu.
Recommandations d'experts -
- Les fichiers modèles (.tpl) dans Drupal 7 doivent être réécrits à l'aide de fichiers twig, qui font partie du framework symphony 2.
- Assurez-vous de réécrire vos modules personnalisés qui suivent les normes symphony.
Implémentation de la migration Drupal 7 à 8
L'étape la plus attendue et la plus significative est arrivée. Comme indiqué précédemment, il existe deux manières de migrer vos données Drupal 7 vers Drupal 8 -
- Exécuter une migration avec l'interface utilisateur Drupal
- Exécuter une migration avec le Drush
Ce dernier est recommandé car il est plus efficace, peut être incorporé dans des scripts shell et contient des messages d'erreur plus clairs.
Méthode d'interface utilisateur Drupal
En tirant parti du module Migrate UI Drupal 8, vous pouvez commencer par visiter le chemin /upgrade du site Web Drupal 8. La page de révision de la mise à niveau de Drupal 8 vous montrera une liste des modules de votre site Drupal 7 qui peuvent et ne peuvent pas être automatiquement migrés vers Drupal 8. Pour les modules qui ont leurs fonctionnalités dans un autre module D8 mais pas exactement les mêmes (comme le module AddressField dans D7 est maintenant le module Adresse dans D8), vous devrez installer et activer le module D8 correspondant et redémarrer le processus de migration Drupal 7 vers 8. Sur la base du catalogue du contenu et des données extraites, vous devez créer les scripts de migration où vous mappez les attributs de type de contenu de Drupal 7 avec les attributs de type de contenu nouvellement créés de Drupal 8. Ensuite, vous pouvez continuer avec l'importation des données à partir d'un la source de données.
Méthode Drush
Êtes-vous à l'aise avec le terminal ? Si c'est le cas, vous devriez opter pour la méthode Drush pour la migration Drupal 7 vers 8. Il fournit un ensemble de commandes pour le processus de migration des données avec de meilleurs messages d'état. Consultez ce didacticiel si vous recherchez une migration de procédure étape par étape à l'aide des commandes Drush. Vous n'avez jamais utilisé Drush auparavant ? Ce guide vous aidera à comprendre les bases de Drush avec une liste de commandes utiles pour la migration.
Vous pourriez rencontrer des conflits maintenant. Assurez-vous d'avoir vérifié les problèmes connus dans Drupal. org et comment les corriger. Une fois corrigé, vous pouvez maintenant exécuter le processus de migration qui fournit des journaux/un retour d'informations continus sur les actions entreprises. Enfin, vérifiez les journaux pour toutes les erreurs, corrigez-les et vous êtes prêt à partir !
Recommandation d'expert - Attendez! Une fois que vous avez créé le contenu, ne négligez jamais les vues SEO/page. Nous avons besoin que le contenu ait les mêmes chemins d'URL. N'oubliez pas de vous occuper de migrer les alias d'URL, les balises meta informations du contenu de l'ancien site Drupal 7.
Essai
Il y a de très rares moments où vous ne rencontrerez aucun problème lors d'une migration de Drupal 7 vers Drupal 8. Une fois la migration terminée, un test de régression de la configuration et du contenu fraîchement importé pour identifier d'éventuels bugs ou problèmes est absolument nécessaire.
Défis et recommandations (plus expertes)
- De nombreux modules contribués à Drupal 7 ont de meilleures versions d'eux-mêmes dans Drupal 8 et certains ont été dépréciés. Par exemple, le module Field Collection, qui sert à regrouper les champs dans Drupal 7 sera bientôt obsolète. La fonctionnalité de ce module a été ajoutée au module Paragraphes et au module Révision de référence d'entité dans Drupal 8. Le module Drupal 8 Paragraphes offre une immense flexibilité aux éditeurs/auteurs de contenu pour créer des formes et des structures transparentes. Si vous devez migrer le module Field Collection et le mapper au module Paragraphs (D8), vous devrez écrire des plugins personnalisés pour mapper le contenu entre les champs Field Collection et les champs Paragraph. Ou si vous souhaitez continuer à migrer le module Field Collection même dans Drupal 8, ce mappage de champ peut être géré par les plugins Core migrate disponibles.
- Utilisez-vous des panneaux pour créer vos pages de destination comme la page d'accueil, le tableau de bord, etc. ? Même si vous n'avez qu'à placer un bloc dans la page d'accueil ? Constructeur de mise en page à la rescousse ! Layout Builder dans Drupal 8 permet à un éditeur de contenu de personnaliser plus facilement une page de destination. Tirons le meilleur parti des fonctionnalités de Drupal 8. Pour migrer de Panels vers Layout builder, vous devrez écrire des plugins de migration personnalisés.
- Lors de la migration des utilisateurs, nous devrons également conserver les mots de passe afin que l'utilisateur n'ait pas à recréer le mot de passe sur le nouveau site. Les mots de passe sont du contenu haché. Ainsi, vous devez trouver l'algorithme de type de hachage qui est utilisé dans le site source. Suivant. écrivez un processus pour valider le mot de passe migré avec le mot de passe remanié en utilisant le même algorithme.
- Lors de l'exécution d'une migration Drupal 7 vers 8, vous pouvez épuiser vos ressources système, ce qui peut entraîner l'arrêt de votre migration. Grâce aux hautes eaux, vous pouvez relancer la migration et elle devrait reprendre là où elle s'est arrêtée.
- Le module de fonctionnalités largement utilisé dans Drupal 7 est maintenant presque devenu obsolète après que la gestion de la configuration a pris en charge toutes les fonctionnalités des fonctionnalités et plus encore dans Drupal 8. Bien que le module de fonctionnalités soit également disponible dans Drupal 8, il est fortement recommandé de tirer parti de la configuration de Drupal 8. Système de gestion. Il n'est pas seulement plus simple à utiliser, il est facile à exporter entre les environnements, il utilise les formats de fichier YAML au lieu de PHP - qui est un format de données plus lisible et plus approprié.
- Si vous avez un site Web multilingue Drupal 7 (ou 6), vous pouvez tirer parti du module Migrate Drupal Multilingue. Bien que le module multilingue Migrate Drupal soit encore au stade expérimental, il s'agit d'un module indispensable pour tous les sites Drupal multilingues.
- Vous rencontrez des problèmes avec votre migration de Drupal 7 vers Drupal 8 ? Il existe plusieurs façons de signaler des échecs et d'obtenir de l'aide -
- File d'attente des problèmes de mise à niveau vers Drupal 8
- File d'attente des problèmes de module si vous trouvez un bogue ou une exception avec un module de base/contribué
- Le canal IRC #drupal-migrate sur Freenode
- Le canal #migration sur Drupal Slack
- Embaucher un expert Drupal

