
Migration de données vers Drupal à l'aide de produits à partir d'une base de données externe - Guide
Comment pouvez-vous effectuer une migration de données produit depuis une base de données externe vers Drupal en utilisant les outils disponibles dans l'API Migrate ? Dans cet article de blog, je vais vous montrer comment se connecter à la base de données, préparer la structure de données, et utiliser les outils de migration disponibles dans Drush. Cette entrée s'adresse à ceux qui ont déjà de l'expérience en migration ainsi qu'à ceux qui commencent juste dans ce domaine. Je vous encourage à lire l'article ou à regarder la vidéo de la série “Nowoczesny Drupal” (la vidéo est en polonais).
Dans un article de blog précédent, nous avons discuté de l'importation de données dans Drupal depuis un fichier CSV. Cette fois, nous allons nous concentrer sur la migration depuis une base de données SQL externe vers le type de contenu "produits" dans Drupal. Cet exemple montre à quel point il est facile d'importer des produits depuis une base de données et comment gérer les problèmes éventuels au cours du processus.
Préparer la source pour la migration des données
Nos données se trouvent dans une base de données externe, dans une table nommée "product". Cette table contient les champs suivants :
- ID Produit - un identifiant unique du produit,
- Titre - le nom du produit,
- Image - le chemin vers l'image du produit,
- Description - une brève description du produit,
- Catégorie - la catégorie à laquelle le produit appartient,
- Tags - des étiquettes additionnelles attribuées au produit.

Pour cet article, j'ai simplifié la structure de cette table en ajoutant des colonnes : "image," "category," et "tags." Les IDs de catégories, tags, et médias ont été donnés directement dans la table. Cela évite le besoin de migrations supplémentaires de dictionnaires et de fichiers média.
Configurer un environnement de migration de données
Pour migrer les données produit, nous devons d'abord préparer l'environnement Drupal. Pour ce guide, nous utilisons une installation propre de Droopler, à laquelle nous allons ajouter les modules nécessaires et créer un module personnalisé pour gérer le processus de migration.
Modules dans Drupal nécessaires pour la migration des données
La migration des données dans Drupal repose sur plusieurs modules que nous devons activer. Le premier est Migrate, un module de base faisant partie du noyau, qui fournit des fonctions de migration de base.
Si nous travaillons avec une base de données plus importante, les modules Migrate Plus et Migrate Tools seront utiles. Migrate Plus est une extension qui ajoute des fonctionnalités supplémentaires au processus de migration, et Migrate Tools est une boîte à outils qui intègre la migration avec Drush, vous permettant de gérer la migration directement depuis le terminal.
Créer votre module pour la migration des données
De plus, pour cet article, j'ai créé le module Demigrate. Il s'agit d'un module qui a été presque entièrement généré à l'aide de la commande Drupal Drush - Devil Generate.
Une fois généré, il doit être ajusté à nos besoins. Nous modifions la requête et par le champ select, au lieu de example, nous indiquons product :

L'étape suivante consiste à modifier la zone fields en ajoutant les champs appropriés de la table, à savoir "ID," "titre," "image," "description," "catégorie," et "tags."
J'ai ensuite généré un fichier YAML qui mappe les champs de la source aux champs dans Drupal. Cela détermine quels champs de la base de données doivent être attribués aux champs correspondants dans Drupal. Par exemple, le champ "titre" de la table sera attribué au champ "titre" dans Drupal, et "image" sera attribué au champ "field_image".

Ci-dessous, je montre où dans Drupal vous pouvez les spécifier :
Processus de migration de données en utilisant Drupal Drush
Lorsque notre module est prêt, nous pouvons procéder à la migration des données. Pour pouvoir faire cela, nous devons ajouter une définition dans setting.php pour se connecter à la base de données.

Ensuite, nous passons au terminal. Drupal, en combinaison avec l'outil Drush, propose plusieurs commandes qui simplifient grandement ce processus.
Vérification du statut de la migration de données
Avant d'effectuer la migration, nous pouvons vérifier combien d'enregistrements sont en attente d'importation en utilisant la commande :
drush migrate:status
Cette commande affiche la liste des migrations avec des informations sur le nombre d'enregistrements disponibles pour l'importation. Dans notre cas, il y a dix produits dans la table, ce qui confirme l'exactitude des données préparées.
Importation des données
Pour importer les données, nous utilisons la commande :
drush migrate:import --group=migration_products
Cette commande vous permet d'importer tous les produits de la base de données dans Drupal.
Une fois l'importation terminée, les produits apparaîtront dans Drupal dans la section "Contenu".

Si nous souhaitons importer seulement un enregistrement, nous pouvons utiliser l'option "limit" :
drush migrate:import --group=migration_products --limit=1

Le retour arrière de la migration de données
Parfois, il arrive que la migration ne se passe pas bien, par exemple, en raison de données incorrectes dans la description du produit. Dans ce cas, nous pouvons annuler l'ensemble de la migration en utilisant la commande :
drush migrate:rollback --group=migration_products
Après cette opération, tous les enregistrements importés seront supprimés de Drupal, et nous pourrons recommencer la migration après avoir corrigé les données.
Mettre à jour les données après la migration
La migration ne signifie pas toujours un processus unique. Souvent, après avoir importé des données, il y a besoin de les mettre à jour. Un exemple serait lorsque des modifications ont eu lieu dans l'ancienne base de données, et nous devons mettre à jour le contenu dans Drupal.
Nous pouvons le faire avec la commande :
drush migrate:import --group=migration_products --update
Cette commande mettra à jour uniquement les enregistrements qui ont été modifiés dans la base de données source, sans avoir besoin d'importer l'ensemble du jeu de données depuis le début.
Migration de données vers Drupal - résumé
La migration de données vers Drupal peut sembler compliquée, mais avec l'utilisation de l'API Migrate, de Drupal Drush et d'outils tels que Migrate Plus et Migrate Tools, l'ensemble du processus devient beaucoup plus simple et plus efficace. Il est important de préparer correctement les données, de générer un module personnalisé, et de connaître les commandes de base de Drush. Avec ces outils Drupal, vous pouvez transférer efficacement des données provenant de sources externes vers Drupal, assurant la continuité du système et minimisant le risque d'erreurs.
Importer depuis une base de données n'a pas besoin d'être difficile - il suffit de suivre les étapes ci-dessus, et le processus se déroulera sans accroc. Si vous avez des questions, nos experts en migration de données seront ravis de vous aider.