-

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.
Ein Beispiel für eine externe Datenbank für die Migration von Produkten zu Drupal.


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:

Erstellung des für die Datenmigration erforderlichen Demigrate-Moduls mit dem Drush-Befehl.


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.

Erstellung des für die Datenmigration erforderlichen Demigrate-Moduls mit dem Drush-Befehl.


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

Verwaltung von Feldern im Produktbereich von Drupal für die Datenmigration.


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.

Datenmigration mit Produkten nach Drupal unter Verwendung von Drupal Drush.


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.

Die Ansicht der importierten Produkte aus der Datenbank im Drupal-System.


Wenn wir nur einen einzigen Datensatz importieren möchten, können wir die Option „limit“ verwenden:

drush migrate:import --group=migration_products --limit=1
Die Option, nur ein Produkt aus einer Datenbank in Drupal zu importieren, unter Verwendung von Drupal Drush.


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.

migrate Drupal 7 website Droptica