
Datenmigration zu Drupal mit Produkten aus externer Datenbank - Anleitung
Wie können Sie eine Produktdatenmigration von einer externen Datenbank nach Drupal mit den im Migrate API verfügbaren Tools durchführen? In diesem Blogbeitrag zeige ich Ihnen, wie Sie die Verbindung zur Datenbank herstellen, die Datenstruktur vorbereiten und die Migrationswerkzeuge in Drush verwenden. Dieser Eintrag richtet sich sowohl an Personen, die bereits Erfahrungen mit Migrationen haben, als auch an diejenigen, die gerade erst damit beginnen. Ich empfehle Ihnen, den Artikel zu lesen oder das Video der „Nowoczesny Drupal“ Serie anzusehen (das Video ist auf Polnisch).
In einem früheren Blogartikel haben wir über den Import von Daten aus einer CSV-Datei nach Drupal gesprochen. Diesmal konzentrieren wir uns auf die Migration aus einer externen SQL-Datenbank in den „products“ Inhaltstyp in Drupal. Dieses Beispiel zeigt, wie einfach es ist, Produkte aus einer Datenbank zu importieren und wie man mit möglichen Problemen während des Prozesses umgeht.
Vorbereitung der Quelle für die Datenmigration
Unsere Daten befinden sich in einer externen Datenbank, in einer Tabelle namens „product“. Diese Tabelle enthält die folgenden Felder:
- Produkt-ID - eine eindeutige Kennung des Produkts,
- Titel - der Produktname,
- Bild - der Pfad zum Produktbild,
- Beschreibung - eine kurze Beschreibung des Produkts,
- Kategorie - die Kategorie, zu der das Produkt gehört,
- Tags - zusätzliche dem Produkt zugeordnete Tags.

Für diesen Artikel habe ich die Struktur dieser Tabelle vereinfacht, indem ich die Spalten „Bild“, „Kategorie“ und „Tags“ hinzugefügt habe. Die IDs der Kategorien, Tags und Medien wurden direkt in der Tabelle angegeben. Dies vermeidet die Notwendigkeit zusätzlicher Migrationen von Wörterbüchern und Mediendateien.
Einrichten einer Datenmigrationsumgebung
Um Produktdaten zu migrieren, müssen wir zuerst die Drupal-Umgebung vorbereiten. Für diesen Leitfaden verwenden wir eine saubere Installation von Droopler, zu der wir die notwendigen Module hinzufügen und ein benutzerdefiniertes Modul erstellen, um den Migrationsprozess zu verwalten.
In Drupal benötigte Module für die Datenmigration
Die Datenmigration in Drupal basiert auf mehreren Modulen, die wir aktivieren müssen. Das erste ist Migrate, ein grundlegendes Modul, das Teil des Kerns ist und grundlegende Datenmigrationsfunktionen bietet.
Wenn wir mit einer größeren Datenbank arbeiten, sind die Migrate Plus und Migrate Tools Module nützlich. Migrate Plus ist eine Erweiterung, die zusätzliche Funktionalität für den Migrationsprozess hinzufügt, und Migrate Tools ist ein Toolkit, das die Migration mit Drush integriert und es Ihnen ermöglicht, die Migration direkt über das Terminal zu verwalten.
Erstellen Sie Ihr Modul für die Datenmigration
Zusätzlich habe ich für diesen Artikel das Demigrate Modul erstellt. Dies ist ein Modul, das fast vollständig mit dem Drupal Drush-Befehl - Devil Generate - generiert wurde.
Nach der Generierung sollte es an unsere Bedürfnisse angepasst werden. Wir ändern die query und beim select Feld geben wir anstelle von example product:

Der nächste Schritt besteht darin, den Bereich fields zu ändern, indem die entsprechenden Felder aus der Tabelle hinzugefügt werden, nämlich „ID“, „title“, „image“, „description“, „category“ und „tags“.
Anschließend habe ich eine YAML-Datei erstellt, die Felder von der Quelle den Feldern in Drupal zuordnet. Dies bestimmt, welche Felder in der Datenbank den entsprechenden Feldern in Drupal zugewiesen werden sollen. Zum Beispiel wird das „title“ Feld aus der Tabelle dem „title“ Feld in Drupal zugewiesen, und „image“ wird dem „field_image“ Feld zugewiesen.

Im Folgenden zeige ich, wo in Drupal Sie sie angeben können:

Datenmigrationsprozess unter Verwendung von Drupal Drush
Wenn unser Modul fertig ist, können wir mit der Datenmigration fortfahren. Um dies tun zu können, müssen wir eine Definition in setting.php hinzufügen, um die Verbindung zur Datenbank herzustellen.

Dann wechseln wir zum Terminal. Drupal bietet in Verbindung mit dem Drush-Tool mehrere Befehle, die diesen Prozess erheblich vereinfachen.
Überprüfung des Status der Datenmigration
Bevor wir die Migration durchführen, können wir prüfen, wie viele Datensätze darauf warten, importiert zu werden, indem wir den Befehl verwenden:
drush migrate:status
Dieser Befehl zeigt die Liste der Migrationen mit Informationen über die Anzahl der zur Verfügung stehenden Datensätze für den Import an. In unserem Fall gibt es zehn Produkte in der Tabelle, was die Richtigkeit der vorbereiteten Daten bestätigt.
Daten importieren
Um Daten zu importieren, verwenden wir den Befehl:
drush migrate:import --group=migration_products
Dieser Befehl erlaubt Ihnen, alle Produkte aus der Datenbank in Drupal zu importieren.
Nach Abschluss des Imports werden die Produkte im „Inhalt“ Abschnitt in Drupal erscheinen.

Wenn wir nur einen einzigen Datensatz importieren möchten, können wir die Option „limit“ verwenden:
drush migrate:import --group=migration_products --limit=1

Der Datenmigrations-Rollback
Manchmal kommt es vor, dass die Migration fehlschlägt, zum Beispiel aufgrund fehlerhafter Daten in der Produktbeschreibung. In diesem Fall können wir die gesamte Migration mit dem Befehl rückgängig machen:
drush migrate:rollback --group=migration_products
Nach diesem Vorgang werden alle importierten Datensätze aus Drupal gelöscht und wir können die Migration nach Korrektur der Daten erneut starten.
Daten nach der Migration aktualisieren
Migration bedeutet nicht immer einen einmaligen Prozess. Oft besteht nach dem Import von Daten die Notwendigkeit, diese zu aktualisieren. Ein Beispiel wäre, wenn in der alten Datenbank Änderungen aufgetreten sind und wir den Inhalt in Drupal aktualisieren müssen.
Wir können dies mit dem Befehl tun:
drush migrate:import --group=migration_products --update
Dieser Befehl aktualisiert nur die Datensätze, die in der Quelldatenbank geändert wurden, ohne dass der gesamte Datensatz von Grund auf neu importiert werden muss.
Datenmigration zu Drupal - Zusammenfassung
Die Migration von Daten zu Drupal mag kompliziert erscheinen, aber mit dem Einsatz von Migrate API, Drupal Drush und Tools wie Migrate Plus und Migrate Tools wird der gesamte Prozess viel einfacher und effizienter. Es ist wichtig, die Daten richtig vorzubereiten, ein benutzerdefiniertes Modul zu generieren und die grundlegenden Drush-Befehle zu kennen. Mit diesen Drupal-Tools können Sie Daten effizient von externen Quellen nach Drupal übertragen, die Systemkontinuität gewährleisten und das Fehlerpotenzial minimieren.
Der Import aus einer Datenbank muss nicht schwierig sein - folgen Sie einfach den obigen Schritten, und der Prozess wird reibungslos ablaufen. Wenn Sie Fragen haben, stehen Ihnen unsere Datenmigrationsexperten gerne zur Verfügung.