Upgrade der Commerce-Version
Sie können die Codebasis von Adobe Commerce auf eine neuere Version aktualisieren. Bevor Sie Ihr Projekt aktualisieren, lesen Sie die Systemanforderungen im Handbuch Installation , um die neuesten Anforderungen für die Softwareversion anzuzeigen.
Abhängig von Ihrer Projektkonfiguration können Ihre Aktualisierungsaufgaben Folgendes umfassen:
- Aktualisierungsdienste wie MariaDB (MySQL), OpenSearch, RabbitMQ und Redis für die Kompatibilität mit neuen Adobe Commerce-Versionen.
- Konvertieren Sie eine ältere Konfigurationsverwaltungsdatei.
- Aktualisieren Sie die Datei
.magento.app.yaml
mit neuen Einstellungen für Hooks und Umgebungsvariablen. - Aktualisieren Sie Drittanbietererweiterungen auf die neueste unterstützte Version.
- Aktualisieren Sie die Datei "
.gitignore
".
Staging
- und Production
-Umgebungen zu installieren oder zu aktualisieren..magento.app.yaml
und services.yaml
ein und geben Sie die PHP-Version im Ticket an. Informationen zu Self-Service-Änderungen an PHP-Versionen, Erweiterungen oder Umgebungseinstellungen finden Sie unter PHP-Einstellungen in Anwendungskonfiguration.Upgrade von älteren Versionen
Wenn Sie ein Upgrade von einer Commerce-Version starten, die älter als 2.1 ist, können einige Einschränkungen in der Adobe Commerce-Codebasis Ihre Fähigkeit beeinträchtigen, __ auf eine bestimmte ECE-Tools-Version oder auf Upgrade auf die nächste unterstützte Commerce-Version zu aktualisieren. Verwenden Sie die folgende Tabelle, um den besten Pfad zu ermitteln:
ece-tools
nicht enthält, müssen Sie ein einmaliges Upgrade auf Ihr Cloud-Projekt durchführen, um veraltete Pakete zu entfernen. Wenn Sie derzeit das Paket ece-tools
verwenden und es aktualisieren müssen, finden Sie weitere Informationen unter ECE-Tools-Paket aktualisieren .Konfigurationsverwaltung
In älteren Versionen von Adobe Commerce, z. B. 2.1.4 oder höher bis 2.2.x oder höher, wurde eine config.local.php
-Datei für die Konfigurationsverwaltung verwendet. Adobe Commerce-Version 2.2.0 und höher verwenden die Datei "config.php
", die genau wie die Datei "config.local.php
"funktioniert, aber unterschiedliche Konfigurationseinstellungen aufweist, die eine Liste der aktivierten Module und zusätzliche Konfigurationsoptionen enthalten.
Beim Aktualisieren von einer älteren Version müssen Sie die Datei "config.local.php
"migrieren, um die neuere Datei "config.php
"zu verwenden. Führen Sie die folgenden Schritte aus, um Ihre Konfigurationsdatei zu sichern und eine zu erstellen.
So erstellen Sie eine temporäre config.php
Datei:
-
Erstellen Sie eine Kopie der Datei "
config.local.php
" und nennen Sie sie "config.php
". -
Fügen Sie diese Datei zum Ordner
app/etc
Ihres Projekts hinzu. -
Fügen Sie die Datei hinzu und übertragen Sie sie in Ihre Verzweigung.
-
Schicken Sie die Datei an Ihre Integrationsverzweigung.
-
Fahren Sie mit dem Upgrade-Prozess fort.
config.php
" entfernen und eine neue, vollständige Datei erstellen. Sie können diese Datei nur löschen, um sie dieses Mal zu ersetzen. Nach dem Generieren einer neuen, vollständigen config.php
-Datei können Sie die Datei nicht löschen, um eine neue zu generieren. Siehe Konfigurationsverwaltung und Pipeline-Bereitstellung.Überprüfen der Abhängigkeiten von Zend Framework Composer
Stellen Sie beim Upgrade auf 2.3.x oder höher von 2.2.x sicher, dass die Zend Framework-Abhängigkeiten zur Eigenschaft autoload
der Datei composer.json
hinzugefügt wurden, um Laminas zu unterstützen. Dieses Plug-in unterstützt neue Anforderungen für das Zend Framework, das zum Laminas-Projekt migriert wurde. Siehe Migration des Zend Framework zum Laminas-Projekt auf dem Magento DevBlog.
Überprüfen der auto-load:psr-4
Konfiguration:
-
Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.
-
Sehen Sie sich Ihre Integrationsverzweigung an.
-
Öffnen Sie die Datei "
composer.json
" in einem Texteditor. -
Überprüfen Sie den Abschnitt
autoload:psr-4
für die Implementierung des Zend-Plug-in-Managers für die Abhängigkeit der Controller.code language-json "autoload": { "psr-4": { "Magento\\Framework\\": "lib/internal/Magento/Framework/", "Magento\\Setup\\": "setup/src/Magento/Setup/", "Magento\\": "app/code/Magento/", "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/" }, }
-
Wenn die Zend-Abhängigkeit fehlt, aktualisieren Sie die Datei "
composer.json
":-
Fügen Sie die folgende Zeile zum Abschnitt
autoload:psr-4
hinzu.code language-json "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
-
Aktualisieren Sie die Projektabhängigkeiten.
code language-bash composer update
-
Hinzufügen, Übertragen und Push-Code-Änderungen.
code language-bash git add -A
code language-bash git commit -m "Add Zend plugin manager implementation for controllers dependency for Laminas support"
code language-bash git push origin <branch-name>
-
Zusammenführen von Änderungen in der Staging-Umgebung und dann in der Produktion.
-
Konfigurationsdateien
Vor der Aktualisierung des Programms müssen Sie Ihre Projektkonfigurationsdateien aktualisieren, um Änderungen an den Standardkonfigurationseinstellungen für Adobe Commerce in der Cloud-Infrastruktur oder der Anwendung zu berücksichtigen. Die neuesten Standardeinstellungen finden Sie im magento-cloud GitHub-Repository.
.magento.app.yaml
Überprüfen Sie stets die Werte in der Datei .magento.app.yaml für Ihre installierte Version, da sie steuert, wie Ihre Anwendung erstellt und in der Cloud-Infrastruktur bereitgestellt wird. Das folgende Beispiel bezieht sich auf Version 2.4.7 und verwendet Composer 2.7.2. Die Eigenschaft build: flavor:
wird nicht für Composer 2.x verwendet; siehe Installieren und Verwenden von Composer 2.
Aktualisieren der .magento.app.yaml
-Datei:
-
Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.
-
Öffnen und bearbeiten Sie die Datei "
magento.app.yaml
". -
Aktualisieren Sie die PHP-Optionen.
code language-yaml type: php:8.3 build: flavor: none dependencies: php: composer/composer: '2.7.2'
-
Ändern Sie die Befehle
hooks
propertybuild
unddeploy
.code language-yaml hooks: # We run build hooks before your application has been packaged. build: | set -e composer install php ./vendor/bin/ece-tools run scenario/build/generate.xml php ./vendor/bin/ece-tools run scenario/build/transfer.xml # We run deploy hook after your application has been deployed and started. deploy: | php ./vendor/bin/ece-tools run scenario/deploy.xml # We run post deploy hook to clean and warm the cache. Available with ECE-Tools 2002.0.10. post_deploy: | php ./vendor/bin/ece-tools run scenario/post-deploy.xml
-
Fügen Sie die folgenden Umgebungsvariablen am Ende der Datei hinzu.
Für Adobe Commerce 2.2.x bis 2.3.x-
code language-yaml variables: env: CONFIG__DEFAULT__PAYPAL_ONBOARDING__MIDDLEMAN_DOMAIN: 'payment-broker.magento.com' CONFIG__STORES__DEFAULT__PAYMENT__BRAINTREE__CHANNEL: 'Magento_Enterprise_Cloud_BT' CONFIG__STORES__DEFAULT__PAYPAL__NOTATION_CODE: 'Magento_Enterprise_Cloud'
Für Adobe Commerce 2.4.x-
code language-yaml variables: env: CONFIG__DEFAULT__PAYPAL_ONBOARDING__MIDDLEMAN_DOMAIN: 'payment-broker.magento.com' CONFIG__STORES__DEFAULT__PAYPAL__NOTATION_CODE: 'Magento_Enterprise_Cloud'
-
Speichern Sie die Datei. Übertragen oder pushen Sie noch keine Änderungen in die Remote-Umgebung.
-
Fahren Sie mit dem Upgrade-Prozess fort.
composer.json
Überprüfen Sie vor dem Upgrade immer, ob die Abhängigkeiten in der Datei composer.json
mit der Adobe Commerce-Version kompatibel sind.
Aktualisieren der composer.json
-Datei für Adobe Commerce-Version 2.4.4 und höher:
-
Fügen Sie dem Abschnitt
config
den folgendenallow-plugins
hinzu:code language-json "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, "laminas/laminas-dependency-plugin": true, "magento/*": true } },
-
Fügen Sie dem Abschnitt
require
das folgende Plug-in hinzu:code language-json "require": { "magento/composer-root-update-plugin": "^2.0.3" },
-
Fügen Sie die folgende Komponente zum Abschnitt
extra:component_paths
hinzu:code language-json "extra": { "component_paths": { "tinymce/tinymce": "lib/web/tiny_mce_5" }, },
-
Speichern Sie die Datei. Übertragen oder pushen Sie noch keine Änderungen in Ihren Zweig.
-
Fahren Sie mit dem Upgrade-Prozess fort.
Projektsicherung
Es wird empfohlen, vor einer Aktualisierung eine Sicherungskopie Ihres Projekts zu erstellen. Führen Sie die folgenden Schritte aus, um Ihre Integration-, Staging- und Produktionsumgebungen zu sichern.
Sichern der Datenbank und des Codes der Integrationsumgebung:
-
Erstellen Sie eine lokale Sicherung der Remote-Datenbank.
code language-bash magento-cloud db:dump
note note NOTE Der Befehl magento-cloud db:dump
führt den Befehl mysqldump mit dem Flag--single-transaction
aus, mit dem Sie Ihre Datenbank sichern können, ohne die Tabellen zu sperren. -
Sichern Sie Code und Medien.
code language-bash php bin/magento setup:backup --code [--media]
Optional können Sie
[--media]
auslassen, wenn Sie eine große Anzahl statischer Dateien haben, die sich bereits in der Quell-Code-Verwaltung befinden.
So sichern Sie die Datenbank der Staging- oder Produktionsumgebung vor der Bereitstellung von:
-
Verwenden Sie SSH, um sich bei der Remote-Umgebung anzumelden.
-
Erstellen Sie einen Datenbank-Dump. Verwenden Sie die Option
--dump-directory
, um ein Zielverzeichnis für den DB-Dump auszuwählen.code language-bash vendor/bin/ece-tools db-dump
Der Dump-Vorgang erstellt eine
dump-<timestamp>.sql.gz
-Archivdatei in Ihrem Remote-Projektverzeichnis. Siehe Datenbank sichern.
Anwendungsaktualisierung
Überprüfen Sie die Informationen zu den Dienstversionen auf die neuesten Anforderungen an die Softwareversion, bevor Sie Ihre Anwendung aktualisieren.
Aktualisieren der Anwendungsversion:
-
Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.
-
Legen Sie die Upgrade-Version mit der Syntax der Versionsbegrenzung fest.
code language-bash composer require "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-update
note note NOTE Sie müssen die Syntax der Versionsbegrenzung verwenden, um das ece-tools
-Paket erfolgreich zu aktualisieren. Sie finden die Versionsbeschränkung in der Dateicomposer.json
für die Version der Anwendungsvorlage, die Sie für das Upgrade verwenden. -
Aktualisieren Sie das Projekt.
code language-bash composer update
-
Überprüfen Sie die derzeit angewendeten Patches:
-
Wenn im Verzeichnis
m2-hotfixes
Patches installiert sind, senden ein Adobe Commerce-Support-Ticket und überprüfen Sie gemeinsam mit dem Adobe Commerce-Support , welche Patches noch auf die neue Version angewendet werden können. Entfernen Sie die nicht zutreffenden Patches aus dem Verzeichnism2-hotfixes
. -
Wenn in der Datei
.magento.env.yaml
irgendwelche [Qualitätsmuster] angewendet wurden, überprüfen Sie, ob sie weiterhin auf die neue Version angewendet werden können. Entfernen Sie die nicht zutreffenden Patches aus dem AbschnittQUALITY_PATCHES
der Datei.magento.env.yaml
.
Methode 1: Überprüfen Sie die entsprechenden Versionen in den Versionshinweisen zu Qualitätsmustern
Methode 2: Verfügbare Patches und Status anzeigen
Methode 3: Suche nach Patches
-
-
Hinzufügen, Übertragen und Push-Code-Änderungen.
code language-bash git add -A
code language-bash git commit -m "Upgrade"
code language-bash git push origin <branch-name>
git add -A
ist erforderlich, um alle geänderten Dateien zur Quell-Code-Verwaltung hinzuzufügen, da der Composer Basispakete marshallt. Sowohlcomposer install
als auchcomposer update
Marshalldateien aus dem Basispaket (magento/magento2-base
undmagento/magento2-ee-base
) in den Paketstamm.Die Dateien, die Composer marschiert, gehören zur neuen Version von Adobe Commerce, um die veraltete Version dieser Dateien zu überschreiben. Derzeit ist das Marshalling in Adobe Commerce deaktiviert. Daher müssen Sie die marshaled -Dateien zur Quell-Code-Verwaltung hinzufügen.
-
Warten Sie, bis die Bereitstellung abgeschlossen ist.
-
Überprüfen Sie das Upgrade in Ihrer Integration-, Staging- oder Produktionsumgebung, indem Sie SSH verwenden, um sich anzumelden und die Version zu überprüfen.
code language-bash php bin/magento --version
Erstellen einer Datei "config.php"
Wie in Konfigurationsverwaltung erwähnt, müssen Sie nach der Aktualisierung eine aktualisierte config.php
-Datei erstellen. Schließen Sie alle weiteren Konfigurationsänderungen über den Admin in Ihrer Integrationsumgebung ab.
Erstellen einer systemspezifischen Konfigurationsdatei:
-
Verwenden Sie vom Terminal einen SSH-Befehl, um die Datei
/app/etc/config.php
für die Umgebung zu generieren.code language-bash ssh <SSH-URL> "<Command>"
Beispiel: Führen Sie für Pro den
scd-dump
-Vorgang für die Verzweigungintegration
aus:code language-bash ssh <project-id-integration>@ssh.us.magentosite.cloud "php vendor/bin/ece-tools config:dump"
-
Übertragen Sie die
config.php
-Datei mitrsync
oderscp
auf Ihre lokalen Workstations. Sie können diese Datei nur lokal zum Zweig hinzufügen.code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Hinzufügen, Übertragen und Push-Code-Änderungen.
code language-bash git add app/etc/config.php && git commit -m "Add system-specific configuration" && git push origin master
Dadurch wird eine aktualisierte
/app/etc/config.php
-Datei mit einer Modulliste und Konfigurationseinstellungen generiert.
config.php
". Nachdem diese Datei zum Code hinzugefügt wurde, sollten Sie sie nicht löschen. Wenn Sie Einstellungen entfernen oder bearbeiten müssen, bearbeiten Sie die Datei manuell.Erweiterungen aktualisieren
Überprüfen Sie Ihre Seiten mit Drittanbietererweiterungen und -modulen in Marketplace oder anderen Unternehmens-Sites und überprüfen Sie die Unterstützung für Adobe Commerce und Adobe Commerce in der Cloud-Infrastruktur. Wenn Sie Erweiterungen und Module von Drittanbietern aktualisieren müssen, empfiehlt Adobe, in einer neuen Integrationsverzweigung zu arbeiten, wobei Ihre Erweiterungen deaktiviert sind.
Überprüfen und Aktualisieren Ihrer Erweiterungen:
-
Erstellen Sie eine Verzweigung auf Ihrer lokalen Workstation.
-
Deaktivieren Sie Ihre Erweiterungen nach Bedarf.
-
Sofern verfügbar, laden Sie Erweiterungs-Upgrades herunter.
-
Installieren Sie das Upgrade wie in der Dokumentation von Drittanbietern beschrieben.
-
Aktivieren und testen Sie die Erweiterung.
-
Fügen Sie die Codeänderungen hinzu, übertragen Sie sie und übertragen Sie sie auf die Remote-Umgebung.
-
Senden Sie Push-Benachrichtigungen an Ihre Integrationsumgebung und testen Sie sie.
-
Push in die Staging-Umgebung, um sie in einer Produktionsumgebung zu testen.
Adobe empfiehlt dringend, die Produktionsumgebung vor einschließlich der aktualisierten Erweiterungen im Site-Startprozess zu aktualisieren.
Fehlerbehebung bei der Aktualisierung
Wenn das Upgrade fehlgeschlagen ist, erhalten Sie eine Fehlermeldung im Browser, die darauf hinweist, dass Sie nicht auf Ihre Storefront oder das Admin-Bedienfeld zugreifen können:
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: <error-number>
So beheben Sie den Fehler:
-
Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.
-
Verwenden Sie SSH, um sich bei der Remote-Umgebung anzumelden.
code language-bash magento-cloud ssh
-
Öffnen Sie die Datei "
./app/var/report/<error number>
". -
Überprüfen Sie die Protokolle und ermitteln Sie die Quelle des Problems.
-
Hinzufügen, Übertragen und Push-Code-Änderungen.
code language-bash git add -A && git commit -m "Fixed deployment failure" && git push origin <branch-name>