Beim Schätzen des Magento-Upgrades werden Informationen zu den Änderungen erfasst, die an der zu aktualisierenden Installation vorgenommen wurden. Anschließend wird geprüft, ob diese Änderungen ein Problem verursachen können, und es wird bewertet, wie viel Zeit erforderlich ist, um sie zu umgehen.
Alle Modifikationen können buchstäblich in Off-Core- und In-Core- Modifikationen unterteilt werden .
Off-Core-Modifikationen sind solche, die beim Upgrade nicht überschrieben werden. Dies sind Erweiterungen von Drittanbietern , Kerndateien, die in den lokalen Bereich (app / code / local / Mage) gestellt werden, und ein benutzerdefiniertes Thema .
In-Core-Änderungen werden direkt auf Magento- Core-Dateien (app / code / core), Lokalisierungsdateien (app / locale / en_US), Core-Vorlagen und einige Dinge wie Javascripts angewendet , externe Bibliotheken, die selten angepasst werden, müssen dennoch berücksichtigt werden .
Off-Core-Modifikationen
Erweiterungen von Drittanbietern
Bei Upgrades treten hauptsächlich Probleme mit Erweiterungen von Drittanbietern auf. Je mehr Erweiterungen Sie haben, desto mehr Zeit benötigen Sie, um sie zu analysieren.
Als Erstes müssen Sie überprüfen, ob die von der Erweiterung bereitgestellten Funktionen in einer Magento-Version, auf die Sie aktualisieren, noch nicht implementiert sind. Zum Beispiel einiger Erweiterungen wie Yoast_CanonicalUrl
, Mxperts_CustomerAddress
oder Fontis_Wysiwyg
wurden in Magento 1.3.xx und älter , aber jetzt sind Teil des Kerns Magento Funktionalität und nicht mehr benötigt werden weit verbreitet.
Dann ist es eine gute Idee, zu überprüfen (fragen Sie Ihren Kunden), ob Sie wirklich alle diese Erweiterungen benötigen, die Sie haben. Möglicherweise haben Sie einige Erweiterungen installiert, aber nie wirklich verwendet. An diesem Punkt ist es also gut, eine Art Bereinigung vorzunehmen.
Dann ist es wichtig, die Kompatibilität aller verbleibenden Erweiterungen mit einer Magento-Version zu überprüfen, auf die Sie aktualisieren. Falls einige Erweiterungen nicht kompatibel sind und keine ähnlichen Erweiterungen verfügbar sind, haben Sie eine schwierige Wahl, entweder einige Funktionen zu verlieren oder vorhandene Erweiterungen zu ändern, um sie kompatibel zu machen.
Hinweis: Ändern Sie Erweiterungen von Drittanbietern nicht direkt, sondern erstellen Sie eine neue Erweiterung, durch die eine veraltete Erweiterung erweitert wird, und legen Sie dann eine Abhängigkeit in einem Bootstrap-XML der neuen Erweiterung fest.
Anschließend kann die tatsächliche Analyse der verbleibenden Erweiterungen bereitgestellt werden. Sie beginnt immer mit der etc/config.xml
Akteneinsicht. Es gibt 3 Dinge zu suchen:
- Das Umschreiben von Klassen ist an sich keine saubere Technik, aber in einigen Fällen gibt es keinen anderen Weg. Wenn also eine umgeschriebene Klasse in der neuen Version von Magento geändert wurde, könnte dies ein potenzielles Problem sein.
- Layout-Updates verursachen mit geringerer Wahrscheinlichkeit ein Problem mit Ihrem Upgrade. Wenn die Erweiterung jedoch auf einen Block verweist, der in einer neueren Magento-Version veraltet ist, müssen Sie dies umgehen.
- SQL-Updates sind eine stark unterschätzte Ursache für Probleme bei Upgrades. Das Problem tritt auf, wenn eine Drittanbietererweiterung einen Fremdschlüssel erstellt, der auf ein Feld in der Standard-Magento-Tabelle verweist. Infolgedessen ist dieses Feld für Änderungen gesperrt. Wenn dann das native Installationsskript versucht, dieses Feld zu aktualisieren, schlägt dies unbemerkt fehl. Danach stürzt jedes nächste Installationsskript, das auf dieses Feld verweist, Ihr Upgrade ab.
app / code / local / Mage
Nachdem Sie mit Ihren Erweiterungen fertig sind, ist es Zeit, sich Ihr app/code/local/Mage
Verzeichnis anzusehen . Hier finden Sie modifizierte Core-Dateien, die in einen local
Bereich verschoben wurden . Jeder von ihnen wird Sie sicherlich einige graue Haare kosten, weil Sie nie wissen (wenn Sie es nicht waren, der sie dort abgelegt hat), was dort geändert wurde und aus welchem Grund. Sie müssen also jedes mit einem Ursprung vergleichen und die hinzugefügte Funktionalität in die entsprechende Datei der neuen Version migrieren.
Benutzerdefiniertes Thema
Die letzte Änderung außerhalb des Kerns ist das benutzerdefinierte Thema. Dies scheint keine große Sache zu sein, aber tatsächlich ist dies eine Grauzone. Das Magento-Basisthema wird von Version zu Version geändert, und jedes benutzerdefinierte Thema muss einige dieser Änderungen imitieren. Leider gibt es kein Patentrezept, um zu bestimmen, wonach gesucht und was migriert werden muss. Seien Sie also nach dem Upgrade auf einige große Überraschungen und ein paar Kleinigkeiten gefasst.
In-Core-Modifikationen
In der perfekten Welt gibt es keine. Aber wenn Sie eine Magento-Installation haben, nachdem sie von Drittanbietern missbraucht wurde, die viel für wenig Geld anbieten, können Sie mit allem rechnen. In-Core-Änderungen sind also solche, die während des Aktualisierungsprozesses überschrieben werden. In den meisten Fällen wird es keine Fehler geben, aber infolgedessen verlieren Sie die Funktionalität, die auf solch brutale Weise hinzugefügt wurde.
Die einzige Möglichkeit, Änderungen im Kern zu erkennen, besteht darin, alle Dateien Ihrer Magento-Installation mit sauberen Dateien derselben Version zu vergleichen. Ich empfehle es mit git zu machen. Warum? Einfach, weil es alle Zeilenumbrüche und Leerzeichen gut handhabt.
Auch wenn Ihre Magento-Installation nicht unter git ausgeführt wird, können Sie Ihre Dateien in ein separates Verzeichnis kopieren und dann git init ausführen. Führen Sie dann das erste Commit durch, kopieren Sie die "sauberen" Magento-Dateien und führen Sie sie aus git status
. Sie erhalten so etwas:
Abhängig von der Anzahl der geänderten Dateien können Sie jetzt git diff
jede Datei oder den gesamten Stapel gleichzeitig ausführen . Auf diese Weise erhalten Sie einen umfassenden Überblick über alle vorgenommenen Änderungen im Kern. Wenn Sie eine Git-Visualisierung wie phpStorm haben, ist das Leben für Sie viel einfacher:
Ich schlage vor, git diff > changes.txt
Sie haben immer eine Liste der Änderungen von Hand.
Mit der Liste der wichtigsten Änderungen können Sie abschätzen, was in eine neue Version übertragen werden muss und wie viel Zeit dafür erforderlich ist.
Jetzt möchte ich einige Ratschläge für ein tatsächliches Upgrade geben. Dieser Vorgang ist gut dokumentiert, sodass ich nicht schreibe, welche Befehle ausgeführt werden sollen und auf welche Stelle geklickt werden soll. Ich möchte jedoch einige wichtige Dinge hervorheben:
- Wir gehen davon aus, dass Sie ein Upgrade in Ihrer Entwicklungsumgebung durchführen. Ein Upgrade auf Ihrem Produktionsserver ist Selbstmord.
- Lassen Sie sie während des Upgrades nichts an der Produktion ändern. Versetzen Sie Ihren Magento unter Versionskontrolle oder sperren Sie sogar temporäre Dateien vor dem Schreiben.
- Deaktivieren Sie alle Nebenstellen von Drittanbietern, beachten Sie jedoch, welche ursprünglich deaktiviert waren, damit Sie sie später nicht aktivieren können.
- Überprüfen Sie, ob auf dem Server ein Magento-Bereinigungsskript ausgeführt wird. Gestutzt sonst alle Tabellen , beginnend mit
dataflow_*
, log_*
, report_*
.
- Beim Upgrade auf das Standarddesign zurücksetzen.
Nach Abschluss des Upgrade-Skripts:
- Wenn
changes.txt
Sie auf die vor der Migration vorgenommenen Änderungen verweisen, werden alle wichtigen Änderungen migriert, die wirklich migriert werden müssen.
- Migrieren
app/code/local/Mage
Sie die vor dem Upgrade gefundenen Änderungen.
- Nacheinander aktivieren Sie Erweiterungen von Drittanbietern.
- Setzen Sie Ihr Thema zurück und vergleichen Sie das Ergebnis umfassend mit dem Produktionsserver.
- Stellen Sie die Produktion ein, sobald Sie mit dem Ergebnis zufrieden sind.
Fazit
Ich weiß, das hört sich alles beängstigend an, aber wenn Sie regelmäßig ein Upgrade durchführen, Ihren Kern sauber halten und Erweiterungen nur von Anbietern installieren, denen Sie wirklich vertrauen, und nur, wenn Sie sie wirklich benötigen, werden Sie den meisten in diesem Artikel beschriebenen Schwierigkeiten nicht begegnen. Halten Sie Ihr Magento EcoSystem gesund und Sie werden belohnt.
Post Scriptum
In sehr komplizierten Fällen ist es sinnvoll, mit einer Neuinstallation von Magento von vorne zu beginnen und das Thema und die Funktionen Ihres Shops Schritt für Schritt zu migrieren. Dies wird definitiv einige Zeit in Anspruch nehmen, aber am Ende werden Sie ein gesundes Magento-System haben, das genau weiß, was vor sich geht.