Préparation du site pour la mise à niveau vers Drupal 8
Avant de mettre à niveau un site Drupal 6 ou Drupal 7 vers Drupal 8, il est recommandé de suivre plusieurs étapes pour s'assurer que le processus se déroulera sans accroc et donnera les résultats escomptés.
Contrairement aux mises à niveau majeures précédentes du noyau Drupal, le processus de mise à niveau vers Drupal 8 ne met pas à jour le site source en place. Au lieu de cela, les objets de configuration et de contenu sont transférés du site source vers un site Drupal 8 propre. Consultez la page Mise à niveau de Drupal 6 ou 7 vers Drupal 8 pour un aperçu du processus et des principales différences.
Bien que la mise à niveau ne modifie pas le site source, il est recommandé de ne pas l’exécuter sur un site en production. Il est conseillé d’utiliser une sauvegarde du site en production afin d’assurer un état cohérent de la base de données (aucune écriture dans la base durant la migration) et d’éviter tout impact sur les performances du site en production.
Module d’inventaire du site source
Il est important de comprendre comment est construit votre site Drupal 6 ou Drupal 7 existant avant de commencer la mise à niveau vers Drupal 8.
Identifiez les modules principaux et additionnels activés sur le site source Drupal 6/7. Pour ce faire, vous pouvez consulter la liste des modules sur la page d’administration des modules (« Administration » > « Construction du site » > « Modules ») ou utiliser la page « Mises à jour disponibles » à l’adresse admin/reports/updates.
Notez la liste complète des modules activés sur le site source et utilisez-la comme checklist pour planifier la mise à niveau. Pour chaque module, répondez aux questions suivantes :
- Ai-je toujours besoin de ce module sur Drupal 8 ?
- Le module a-t-il été intégré dans le noyau de Drupal 8 ? Par exemple, Views fait désormais partie du noyau Drupal 8.
- Existe-t-il une version de ce module pour Drupal 8 ? Sinon, ai-je encore besoin de ce module ? Y a-t-il d’autres modules que je pourrais utiliser pour obtenir la même fonctionnalité ?
- Notez que les modules Drupal 6/7 ne correspondent pas nécessairement un à un aux modules Drupal 8. Par exemple, le module Block dans Drupal 6 et 7 a été divisé en modules Block et Custom Block dans Drupal 8.
L’interface web de mise à niveau de Drupal 8 indique quels modules peuvent être mis à jour automatiquement et lesquels ne le peuvent pas. Consultez la page Mise à niveau via l’interface web pour plus d’informations sur cette analyse. Vous pouvez aussi essayer le module Upgrade Check, qui utilise un service externe pour vous donner une estimation du temps nécessaire à la mise à niveau.
Vérifiez la page des problèmes connus
Le chemin de mise à niveau de Drupal 6/7 vers Drupal 8 est encore expérimental, et certains modules principaux peuvent ne pas avoir de chemin complet de mise à niveau. Lors de la préparation, il est conseillé de lire la page Problèmes connus.
Mettez à jour votre site Drupal 6/7 pour utiliser les dernières versions des modules principaux et additionnels.
Le processus de mise à niveau suppose que vous avez d’abord mis à jour votre ancien site vers la dernière version mineure. Par exemple, si votre site fonctionne avec le noyau Drupal 6.35, vous devez d’abord le mettre à jour vers la version 6.38.
Si vous prévoyez de migrer automatiquement la configuration ou le contenu des modules additionnels, vous devez utiliser leurs dernières versions.
Utilisez la page Mises à jour disponibles de votre site Drupal 6/7 à l’adresse admin/reports/updates pour vérifier si des mises à jour sont disponibles.
Prérequis pour la migration de Drupal 6/7 vers Drupal 8
- Installation propre de Drupal 8 avec les modules principaux « Migrate » et « Migrate Drupal » activés. Si vous migrez vers Drupal 8 via l’interface utilisateur web, vous devez également activer le module principal « Migrate Drupal UI ».
- Pour toutes les migrations de traduction depuis le module d’internationalisation Drupal 6 et 7 (i18n), il est nécessaire que le module multilingue Migrate Drupal (migrate_drupal_multilingual) soit installé sur le site Drupal 8.
- Accès à la base de données Drupal 6 ou 7 depuis l’hôte hébergeant votre nouveau site Drupal 8.
- Accès aux fichiers du site source.
- Si seuls les fichiers publics sont utilisés, ils seront accessibles via l’URL du site.
- Si vous devez migrer des fichiers privés, le répertoire des fichiers doit être accessible directement pour le nouveau site Drupal 8, et vous devez configurer le chemin file_private_path de Drupal 8 dans settings.php avant de lancer la migration.
- Si vous migrez vers Drupal 8 en utilisant Drush, vous aurez aussi besoin de Drush 8 ou Drush 9 et de trois modules supplémentaires.
- Les instructions d’installation pour Drush sont disponibles sur la page mentionnée ci-dessus.
- Installer Migrate Tools
- Installer Migrate Upgrade
- Installer Migrate Plus
- Pour plus d’informations sur ces modules, veuillez consulter la liste des modules de mise à niveau.
- IMPORTANT : Faites particulièrement attention à la compatibilité des versions des modules avec la version du noyau Drupal 8 utilisée. Les pages des trois modules mentionnés ci-dessus indiquent clairement quelle version utiliser.
Activation des modules principaux et complémentaires requis dans Drupal 8
Le processus de migration n’active pas automatiquement les modules sur le site cible Drupal 8. Seules les migrations associées aux modules activés sur le site source et sur le site cible seront exécutées. Vous devez donc d’abord activer tous les modules principaux et complémentaires sur le site Drupal 8 pour lesquels vous souhaitez migrer la configuration et le contenu depuis le site source.
Quelques exemples :
- Si vous avez activé le module Addressfield sur votre site source Drupal 7 et que vous souhaitez migrer les données d’adresse, vous devez activer le module Address sur votre site Drupal 8 avant de commencer la migration. C’est un bon exemple où les modules ne correspondent pas 1:1 entre Drupal 7 et Drupal 8. Cependant, le module Address de Drupal 8 fournit les plugins de migration nécessaires pour migrer les données des champs d’adresse de Drupal 7.
- Si le module principal Forum est activé sur le site source Drupal 7, vous devez activer le module Forum principal sur votre site Drupal 8 avant de commencer la migration.
Ne configurez pas le site Drupal 8
Gardez à l’esprit que le processus de mise à niveau écrasera la configuration du site Drupal 8, donc ne faites aucune configuration sur le site Drupal 8 tant que le processus de mise à niveau n’est pas terminé. Cela signifie que vous n’avez pas besoin de créer manuellement tous les types de contenu et champs avant de lancer la migration. Le module Migrate les créera dans le cadre du processus de migration. En fait, la pratique la plus courante est d’installer Drupal 8 en utilisant le profil d’installation minimal, car le profil standard inclut sa propre configuration que vous ne souhaitez peut-être pas utiliser. Ceci diffère du fonctionnement de Migrate sous Drupal 7 et versions antérieures, où il fallait préparer tous les types de contenu et champs avant de lancer Migrate.
Ne créez pas de contenu sur le site Drupal 8
Le processus de mise à niveau conserve les identifiants uniques du site source. Par exemple, si un compte utilisateur avait l’identifiant unique 2 sur le site source (donc accessible via l’URI relatif /user/2), après la migration, ce même compte utilisateur sera accessible via /user/2 sur le site Drupal 8. Si vous créez un compte utilisateur sur le site Drupal 8 en dehors du compte administrateur par défaut, cet utilisateur recevra l’identifiant utilisateur 2 — dans ce cas, lors de la migration, le compte utilisateur du site source avec l’identifiant 2 écrasera ce compte. Cela s’applique aux comptes utilisateurs, termes de taxonomie, contenus de nœuds ainsi qu’à presque tous les autres types de contenu ayant des identifiants numériques provenant du site source.
Pour éviter toute perte de données, ne créez rien manuellement sur le site Drupal 8 tant que tout le contenu source n’a pas été complètement importé.
Exécution de la mise à niveau
Vous avez deux options pour effectuer la migration :
- Utiliser l’interface utilisateur web. C’est la méthode la plus simple, que vous pouvez faire via l’interface du site Drupal 8. Cependant, elle offre moins de contrôle sur la migration.
- Utiliser Drush. Cette méthode est plus fiable et rapide, permet une migration sélective, mais nécessite des modules supplémentaires et s’exécute en ligne de commande.