Schritt für Schritt mit dem Data-Migration-Tool von Magento 1 zu Magento 2 wechseln
Der Wechsel von Magento 1 zu Magento 2 stellt Shopbetreiber und Magento Entwickler vor besondere Herausforderungen. Da ein einfaches Upgrade wegen der unterschiedlichen Systemarchitekturen unmöglich ist, muss der Magento 2 Shop neu entwickelt werden. Sehr wertvoll sind aber die Migrationstools, die Magento für den möglichst reibungslosen Übergang bereitstellt. In diesem Beitrag zeigen wir Schritt-für-Schritt, wie der Umzug der Daten aus Magento 1 in Magento 2 funktioniert.
1. Die Magento 1 Datenbank bereitstellen
Um die Datenmigration von Magento 1 in Magento 2 vorzubereiten, muss zunächst ein Datenbank-Dump der Magento 1 Datenbank erstellt werden. Der Dump muss dann auf dem MySQL-Server mit dem neuen Magento 2 Shop eingespielt werden, damit die Daten dort über das Migrationstool importiert werden können.
2. Das Data-Migration-Tool installieren
Damit die Daten aus dem alten Shop in den Magento 2 Shop importiert werden können, muss auf dem Server mit dem neuen Shop das Data-Migration-Tool von Magento installiert werden. Dazu genügt es, den entsprechenden Composer-Befehl auszuführen:
composer config repositories.data-migration-tool git https://github.com/magento/data-migration-tool
Dann ist es wichtig, genau die richtige Version zu installieren. Die Version des Tools muss der Version des Shops entsprechen. Hier ein Beispiel für Magento 2.3.2:
composer require magento/data-migration-tool:2.3.2
Wenn das Tool in der passenden Version installiert ist, muss es noch konfiguriert werden, bevor die eigentliche Migration beginnen kann.
3. Das Data-Migration-Tool konfigurieren
Im Verzeichnis mit der Konfigurationsdatei des Data-Migration-Tools für die verwendete Magento 1 Version muss die Datei config.xml.dist
in config.xml
umbenannt werden. Hier der Pfad für die Version Magento 1.9.4.1:
/vendor/magento/data-migration-tool/etc/opensource-to-opensource/1.9.4.1/
Dann muss im Bereich die Datenbankverbindung für die importierte Magento 1 Datenbank mit Host, Datenbankname, Benutzername und Passwort eingetragen werden:
<source>
<database host="localhost" name="db-name" user="user" password="passwort"/>
</source>
Analog dazu muss im Bereich
die Datenbankverbindung für die neue Magento 2 Datenbank mit Host, Datenbankname, Benutzername und Passwort eingetragen werden:
<destination>
<database host="localhost" name="db-name" user="user" password="passwort"/>
</destination>
Im Bereich
muss schließlich noch der crypt_key
aus der local.xml
des Magento 1 Shops eingetragen werden, damit die verschlüsselten Daten ausgelesen werden können:
<crypt_key>KRYPT-KEY</crypt_key>
Zusätzlich zu diesen obligatorischen Einstellungen können je nach Szenario noch weitere Optionen sinnvoll sein. Detailliertere Angaben dazu finden sich im Abschnitt zu den Einstellungsmöglichkeiten für das Data-Migration-Tool in der offiziellen Dokumentation von Magento. Nach dem Speichern der Datei config.xml
ist das Data-Migration-Tool fertig konfiguriert und die Übertragung der Daten aus der Magento 1 Datenbank in den Magento 2 Shop kann beginnen.
4. Die Daten in Magento 2 übertragen
Im Hauptverzeichnis des Magento 2 Shops muss zunächst der folgende Befehl ausgeführt werden, um die Migration der Grundeinstellungen durchzuführen – hier im Beispiel wieder mit dem Pfad für Magento 1.9.4.1:
php bin/magento migrate:settings -a /var/www/magento2/vendor/magento/data-migration-tool/etc/opensource-to-opensource/1.9.4.1/config.xml
Bei den nun übertragenen Einstellungen handelt es sich um die Konfiguration, die in der Datenbanktabelle core_config_data
gespeichert wird und im Backend größtenteils unter System > Configuration zu finden ist. Dieser Schritt sollte unbedingt vor der Übertragung der Shop-Daten durchgeführt werden, da hierbei die im alten Shop angelegten Store Views auch im neuen Shop angelegt werden.
Mit dem zweiten, hier ebenfalls für Magento 1.9.4.1 angegebenen Befehl wird dann die Übertragung der Shop-Daten angestoßen:
php bin/magento migrate:data -a /var/www/magento2/vendor/magento/data-migration-tool/etc/opensource-to-opensource/1.9.4.1/config.xml
Daraufhin werden Produkte – auch konfigurierbare –, Kategorien mit allen Unterkategorien, Kunden, Bestellungen und vieles mehr aus der Magento 1 Datenbank in den Magento 2 Shop übertragen. Auch die Attribute werden bei der Migration mitkopiert, wobei jedoch Attribute aus Extensions nicht übertragen werden, da die dazugehörigen Extensions nicht im Magento 2 Shop installiert sind.
5. Die Produktbilder in Magento 2 übertragen
Um zusätzlich zu den in der Datenbank gespeicherten Daten auch die Produktbilder aus Magento 1 in Magento 2 zu übertragen, muss der Inhalt des Verzeichnisses media/catalog/product
des Magento 1 Shops in das Verzeichnis pub/media/catalog/product
des Magento 2 Shops kopiert werden. Wichtig ist dabei jedoch, dass das Verzeichnis cache
aus media/catalog/product
des Magento 1 Shops nicht mitgenommen wird. Die Bilder sind im neuen Shop dann automatisch den Produkten zugeordnet.
Danach muss noch einmal mage2compile all
ausgeführt werden – und die Migration der Daten ist abgeschlossen.
6. Übertragung von Extension-Daten
Damit auch Extension-Daten übertragen werden können, ist in der Regel individuelle Programmierung vonnöten. In vielen Fällen ist für Magento 2 keine Extension mehr verfügbar, die der bislang in Magento 1 verwendeten entspricht. Und selbst wenn Erweiterungen fortgeführt worden sind und auch für Magento 2 angeboten werden, unterscheiden sie sich oftmals so deutlich von der Variante für Magento 1, dass die Migration der Daten nicht ohne Weiteres möglich ist. In solchen Fällen müssen dann für die einzelnen Extensions jeweils eigene Lösungen entwickelt werden, um das Data-Migration-Tool zu ergänzen und so den Migrationsprozess durch die Überführung der Extension-Daten in das neue System zu unterstützen.
7. Delta Mode: Die Diff-Funktion für den Livegang
Da die Migration der Daten mit dem Data-Migration-Tool von Magento nicht am Ende des Umzugs von Magento 1 zu Magento 2 steht, ist vor dem Liveschalten des neuen Shops noch einmal ein Abgleich der aktuellen Daten zwischen dem alten und dem neuen Shop nötig. Immerhin ist der Magento 1 Shop ja bis zuletzt in Betrieb, so dass es auch nach der ersten Migration der Daten laufend Änderungen an Produkten, neue Bestellungen, Kunden und so weiter gibt. Dafür hat Magento in das Data-Migration-Tool eine Diff-Funktion integriert.
Mithilfe dieses praktischen Features werden die unterschiedlichen Stände der Daten in den Datenbanken von Magento 1 und Magento 2 noch einmal abgeglichen. Dabei werden inzwischen entstandene Abweichungen der Daten im alten Shop von den zuletzt migrierten Daten in der Datenbank des neuen Shops gewissermaßen “nachgetragen”. Wie das funktioniert, erklärt Magento im Abschnitt zum Delta Mode in der Dokumentation des Data-Migration-Tools. Auch hier gilt wieder, dass zunächst nur die durch Magento Module erzeugten Daten abgeglichen werden. In der Zwischenzeit entstandene Änderungen an Extension-Daten in Magento 1 müssen wiederum mithilfe von individuell angepassten Lösungen in die Datenbank des Magento 2 Shops übertragen werden.
Brauchen Sie Unterstützung bei der Migration Ihrer Daten?
Gern unterstützen wir Sie beim Wechsel von Ihrem Magento 1 Onlineshop zu Magento 2.