Erfolgreich eine Magento Migration durchführen

Die Frage, die sich vielen Shopbetreibern früher oder später stellt, deren Magento Shop auf einer älteren Version basiert und die nun eine Magento Migration auf eine aktuelle Version durchführen möchten, ist immer folgende:

Soll ich ein Update meines aktuellen Magento Shops wagen, oder setze ich doch lieber eine neue saubere Magentoinstallation auf und übertrage die Kunden, Produkte und Artikel in die neue Datenbank? Diese Frage zu beantworten ist nicht ganz einfach, vielmehr kommt es auf die jeweilige Installation an.

Magento Migration

Bei kleineren Versionssprüngen wie bspw. von Magento Commerce 1.6.1 auf 1.6.2 oder auch 1.6.2 auf 1.7 kann man es in vielen Fällen durchaus wagen die automatische Updatefunktion zu nutzen. Voraussetzung dafür ist, dass die bestehende Magentoinstallation frei von unsauber programmierten Codeschnipseln, manuell programmierten „Patches“ oder nicht entsprechend aktualisierten Erweiterungen ist. Andernfalls kann die Durchführung des Updates zu einem Totalcrash und im schlimmsten Fall sogar zu einer irreparabel beschädigten Datenbank führen. Wenn kein Backup vorhanden ist segnet der Onlineshop dann per Klick für immer das Zeitliche.

Bei älteren Magentoinstallationen und damit größeren Versionssprüngen, wie z.B. von Version 1.3 oder 1.4 auf 1.9, lohnt sich gleich die Neuinstallation, da die Praxis häufig zeigt, dass eine Update über all diese Versionen hinweg soviele Unterschiede mit sich bringt, dass der Shop wahrscheinlich nicht mehr laufen wird. Sowohl der Core-Code als auch Erweiterungen, die Datenbank und selbst das Template sind dann so unterschiedlich, dass größere Anpassungen notwendig werden würden, wenn es überhaupt modernen Ersatz für bisher genutzte Features gibt.

Das Aufsetzen eines frischen Magento Shops ist dagegen mit relativ wenig Aufwand verbunden und mithin schnell erledigt. Das bisherige Template einzubauen ist zwar immer noch aufwändig, aber in den meisten Fällen weniger kritisch. Man ist ohnehin gut damit beraten, bei einem derart großen Versionssprung auch das Aussehen dem aktellen Zeitgeschehen anzupassen und gleich ein neues Template anzufertigen. Daher: Lieber neu machen.

Wie man die Daten mitnimmt

Durch die immer noch sehr hohe Komplexität der Magento-Datenbank aufgrund des EAV-Systems sowie der zahlreichen Änderungen zwischen den Versionen, ist ein einfaches Überspielen von Tabellen und Inhalten bei größeren Versionssprüngen jedoch unmöglich. Die Daten müssen daher selektiert und aufbereitet in die neue Struktur überspielt werden.

Da für diesen Prozess keine umfassende Lösung in Magento selbst – auch nicht durch DataFlow oder Import/Export-Schnittstelle – oder als Erweiterung bereitsteht, und nicht jeder gerne seine kompletten Shopdaten einem unbekannten Dienstleister aus der Ferne frei Haus liefern möchte, bleibt noch als Alternative die Anfertigung eines extra auf diesen Zweck zugeschnittenen Migrationsskripts.

So ein Skript muss in der Lage sein, die gewollten Komponenten aus der alten Datenbank zu lesen, die Daten für die Voraussetzungen der neuen Struktur aufzubereiten, alle Abhängigkeiten zu verzweigten Daten zu berücksichtigen, aufzulösen und wiederherzustellen und letztendlich alles so vorzubereiten, dass die Datenbank der neuen, noch leeren Version in einem Rutsch mit den Altdaten versorgt werden kann, da die Ausfallzeit beim Wechsel auf die neue Version möglichst gering zu halten ist.

Gewagt und Geschafft

Ich bin anno 2012 diesen Weg gegangen und habe eine Magentoinstallation mit 38.000 Bestellungen, 23.000 Produkten und 110.000 Kundenkonten per eigens entworfenen Skript erfolgreich von Version 1.3.2.4 auf die damals aktuellste 1.7.0.2 migriert. Folgende Datenbereiche waren mir und dem Kunden dabei wichtig und mussten von dem Skript entsprechend transportiert werden:

  • Produktkategorien
  • Attributsets- und Attribute
  • Produkte (inkl. konfigurierbare Produkte)
  • Produktbilder
  • Produktbeziehungen (Related Products, Crosssell…)
  • Lagerbestände
  • Nummernkreise (Bestellnummern, Kundennummern, etc.)
  • Kundenkonten
  • Kundenadressen
  • Warenkörbe
  • Bestellungen
  • Rechnungen
  • Umfragen
  • Produktbewertungen
  • Produkttags
  • Newsletterabonnements
  • Blog-Einträge (aus Erweiterung)

Um hier die notwendige Geschwindigkeit und Freizügigkeit zu erhalten, die für so eine Transskription benötigt wird, kommuniziert dieses Skript direkt mit der Magento Datenbank, holt sich die benötigten Rohdaten, führt entsprechende Anpassungen durch und stellt am Ende eine kombinierte SQL-Datei bereit, das nur noch in die Datenbank der neuen Installation eingespielt werden muss.

Weitere nachträgliche Aktionen sind dann meist nicht mehr notwendig. Das Magento Backend des neuen Shops war sofort nach dem Import der SQL-Datei mit Leben gefüllt und so konnte in nur wenigen Stunden Ausfallzeit über Nacht ein gut frequentierter Shop erfolgreich von seiner inzwischen vergreisten Codebasis befreit werden, ohne dabei einen Haircut an Daten zu erleiden und ohne dass von Hand Daten gepflegt werden mussten.

Wenn auch Sie über einen alten Magento Shop verfügen und sich nicht sicher sind, wie sie sich ohne den Verlust ihrer Daten zuverlässig von Altlasten befreien sollen, dann stehe ich Ihnen gerne mit Rat und auch mit Tat zur Seite. Denn nichts ist schlimmer als ein veralteter Shop, der einem potenziellen Angreifer durch nicht geschlossene Sicherheitslücken Tür und Tor öffnet.

Ergänzung: Auch Migrationen zu den Versionen 1.8 und 1.9 möglich

Aufgrund der großen Nachfrage: Das Datenupdate nehme ich selbstverständlich auf Wunsch auch zur neuen Version 1.8 oder 1.9 vor. Kostentechnisch muss in jedem Fall aufgrund der Individualität jedes Shops bei der reinen Datenmigration mit einem kleinen, vierstelligen Euro-Betrag gerechnet werden. Wenn darüber hinaus weitere Tätigkeiten bei mir anfallen, wie z.B. eine Neuadaption des bisherigen Templates oder gar eine Komplettmigration (d.h. auch inklusive Installation / Einrichtung), so fallen weitere Kosten an. In der Regel beauftragen meine Kunden jedoch nur die reine Datenmigration.

Die tatsächliche Umschaltung auf den neuen Shop nehme ich dann meist in Zusammenarbeit mit meinen Kunden vor. Dieser Prozess gelingt meist in weniger als 2 Stunden, sodaß keine größeren Ausfallzeiten entstehen. Zeigen Sie mir doch einfach Ihren alten Shop und teilen Sie mir mit, was Sie am neuen Shop abzüglich der Daten selbst vornehmen und ich erstelle Ihnen gerne ein individuelles Angebot. Rufen Sie mich an oder schreiben Sie mir.

Ihr Christian Zehaczek

Dieser Beitrag wurde ursprünglich unter meinem Namen auf der Seite der Design:Slider GbR veröffentlicht, die jedoch inzwischen geschlossen und der Inhalt daher hierher übertragen wurde.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.