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".
TIP
Bevor Sie mit einem Upgrade- oder Patchprozess beginnen, erstellen Sie einen aktiven Zweig aus der Integrationsumgebung und checken Sie die neue Verzweigung auf Ihrer lokalen Workstation aus. Wenn Sie eine Verzweigung dem Upgrade- oder Patch-Prozess zuweisen, können Sie Störungen Ihrer laufenden Arbeit vermeiden.
TIP
Für Pro-Projekte müssen Sie ein Adobe Commerce-Support-Ticket senden, um Dienste nur in Staging - und Production -Umgebungen zu installieren oder zu aktualisieren.
Geben Sie die erforderlichen Dienständerungen an, fügen Sie Ihre aktualisierten Dateien .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.
Für Änderungen an einer Live-Produktionsumgebung (Nur Pro) ist eine Benachrichtigung über mindestens 48 Stunden erforderlich. Dadurch kann das Cloud-Infrastruktur-Team ausreichend Zeit für die Mobilisierung von Ressourcen und die Durchführung eines sicheren Upgrades erhalten. Der Benachrichtigungszeitraum beginnt, wenn das Infrastrukturteam die Anfrage bestätigt und das Upgrade plant, mit Ausnahme der Wochenenden. Damit beispielsweise Dienstaktualisierungen am Montag abgeschlossen werden können, muss bis Mittwoch eine Bestätigung des geplanten Upgrades eingehen. In Spitzenlastzeiten kann es länger dauern, Ihre Anfrage zu verarbeiten.

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:

Aktuelle Version
Aktualisierungspfad
2.1.3 und früher
Aktualisieren Sie Adobe Commerce auf Version 2.1.4 oder höher, bevor Sie fortfahren. Führen Sie dann ein einmaliges Upgrade durch, um ECE-Tools zu installieren.
2.1.4 - 2.1.14
ECE-Tools-Paket aktualisieren.
Siehe Versionshinweise für die Versionen 2002.0.9 und höher 2002.0.x .
2.1.15 - 2.1.16
ECE-Tools-Paket aktualisieren.
Siehe Versionshinweise für 2002.0.9 und höher.
2.2.x und höher
ECE-Tools-Paket aktualisieren.
Siehe Versionshinweise für 2002.0.8 und höher.
NOTE
Wenn Sie eine Version von Adobe Commerce in der Cloud-Infrastruktur verwenden, die das Paket 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:

  1. Erstellen Sie eine Kopie der Datei "config.local.php" und nennen Sie sie "config.php".

  2. Fügen Sie diese Datei zum Ordner app/etc Ihres Projekts hinzu.

  3. Fügen Sie die Datei hinzu und übertragen Sie sie in Ihre Verzweigung.

  4. Schicken Sie die Datei an Ihre Integrationsverzweigung.

  5. Fahren Sie mit dem Upgrade-Prozess fort.

WARNING
Nach dem Upgrade können Sie die Datei "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:

  1. Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.

  2. Sehen Sie sich Ihre Integrationsverzweigung an.

  3. Öffnen Sie die Datei "composer.json" in einem Texteditor.

  4. Ü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/"
        },
    }
    
  5. 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:

  1. Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.

  2. Öffnen und bearbeiten Sie die Datei "magento.app.yaml".

  3. Aktualisieren Sie die PHP-Optionen.

    code language-yaml
    type: php:8.3
    
    build:
        flavor: none
    dependencies:
        php:
            composer/composer: '2.7.2'
    
  4. Ändern Sie die Befehle hooks property build und deploy.

    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
    
  5. 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'
    
  6. Speichern Sie die Datei. Übertragen oder pushen Sie noch keine Änderungen in die Remote-Umgebung.

  7. 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:

  1. Fügen Sie dem Abschnitt config den folgenden allow-plugins hinzu:

    code language-json
    "config": {
       "allow-plugins": {
          "dealerdirect/phpcodesniffer-composer-installer": true,
          "laminas/laminas-dependency-plugin": true,
          "magento/*": true
       }
    },
    
  2. Fügen Sie dem Abschnitt require das folgende Plug-in hinzu:

    code language-json
    "require": {
        "magento/composer-root-update-plugin": "^2.0.3"
    },
    
  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"
       },
    },
    
  4. Speichern Sie die Datei. Übertragen oder pushen Sie noch keine Änderungen in Ihren Zweig.

  5. 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:

  1. 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.
  2. 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:

  1. Verwenden Sie SSH, um sich bei der Remote-Umgebung anzumelden.

  2. 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:

  1. Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.

  2. 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 Datei composer.json für die Version der Anwendungsvorlage, die Sie für das Upgrade verwenden.
  3. Aktualisieren Sie das Projekt.

    code language-bash
    composer update
    
  4. Ü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 Verzeichnis m2-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 Abschnitt QUALITY_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

  5. 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. Sowohl composer install als auch composer update Marshalldateien aus dem Basispaket (magento/magento2-base und magento/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.

  6. Warten Sie, bis die Bereitstellung abgeschlossen ist.

  7. Ü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:

  1. 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 Verzweigung integration aus:

    code language-bash
    ssh <project-id-integration>@ssh.us.magentosite.cloud "php vendor/bin/ece-tools config:dump"
    
  2. Übertragen Sie die config.php -Datei mit rsync oder scp 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
    
  3. 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.

WARNING
Bei einem Upgrade löschen Sie die Datei "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:

  1. Erstellen Sie eine Verzweigung auf Ihrer lokalen Workstation.

  2. Deaktivieren Sie Ihre Erweiterungen nach Bedarf.

  3. Sofern verfügbar, laden Sie Erweiterungs-Upgrades herunter.

  4. Installieren Sie das Upgrade wie in der Dokumentation von Drittanbietern beschrieben.

  5. Aktivieren und testen Sie die Erweiterung.

  6. Fügen Sie die Codeänderungen hinzu, übertragen Sie sie und übertragen Sie sie auf die Remote-Umgebung.

  7. Senden Sie Push-Benachrichtigungen an Ihre Integrationsumgebung und testen Sie sie.

  8. 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.

NOTE
Wenn Sie Ihre Anwendungsversion aktualisieren, wird der Aktualisierungsprozess automatisch auf die neueste Version des Fastly CDN-Moduls aktualisiert.

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:

  1. Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.

  2. Verwenden Sie SSH, um sich bei der Remote-Umgebung anzumelden.

    code language-bash
    magento-cloud ssh
    
  3. Öffnen Sie die Datei "./app/var/report/<error number>".

  4. Überprüfen Sie die Protokolle und ermitteln Sie die Quelle des Problems.

  5. Hinzufügen, Übertragen und Push-Code-Änderungen.

    code language-bash
    git add -A && git commit -m "Fixed deployment failure" && git push origin <branch-name>
    
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26