Uppgradera Commerce-version

Du kan uppgradera Adobe Commerce kodbas till en nyare version. Innan du uppgraderar ditt projekt bör du granska Systemkrav i Installation för de senaste versionskraven.

Beroende på din projektkonfiguration kan din uppgradering innehålla följande:

  • Uppdateringstjänster - som MariaDB (MySQL), OpenSearch, RabbitMQ och Redis - för kompatibilitet med nya Adobe Commerce-versioner.
  • Konvertera en äldre konfigurationshanteringsfil.
  • Uppdatera .magento.app.yaml fil med nya inställningar för krokar och miljövariabler.
  • Uppgradera tillägg från tredje part till den senaste version som stöds.
  • Uppdatera .gitignore -fil.
TIP
Innan du påbörjar en uppgradering eller en korrigeringsprocess skapar du en aktiv gren i integreringsmiljön och checkar ut den nya grenen till din lokala arbetsstation. Genom att dedikera en gren till uppgraderingen eller korrigeringsprocessen undviker du störningar i pågående arbete.
TIP
För Pro-projekt måste du skicka en Adobe Commerce-supportanmälan installera eller uppdatera tjänster in Staging och Production endast i miljöer.
Ange vilka tjänständringar som behövs, inkludera dina uppdaterade .magento.app.yaml och services.yaml och ange PHP-versionen i biljetten. Information om självbetjäningsändringar av PHP-version, tillägg eller miljöinställningar finns i PHP-inställningar in Programkonfiguration.
För ändringar i en live Produktionsmiljö (Endast Pro) måste du lämna minst 48 timmars meddelande så att molninfrastrukturteamet får tillräckligt med tid för att registrera resurser och genomföra en säker uppgradering.

Uppgradera från äldre versioner

Om du påbörjar en uppgradering från en Commerce-version som är äldre än 2.1 kan vissa begränsningar i Adobe Commerce kodbas påverka din förmåga att uppdatera till en särskild ECE-verktygsrelease eller till uppgradera till nästa version av Commerce som stöds. Använd följande tabell för att fastställa den bästa banan:

Aktuell version
Uppgraderingssökväg
2.1.3 och tidigare versioner
Uppgradera Adobe Commerce till version 2.1.4 eller senare innan du fortsätter. Utför sedan en engångsuppgradering för att installera ECE-Tools.
2.1.4 - 2.1.14
Uppdatera ECE-verktyg paket.
Se versionsinformation för 2002.0.9 och senare versioner 2002.0.x.
2.1.15 - 2.1.16
Uppdatera ECE-verktyg paket.
Se versionsinformation för2002.0.9 och senare.
2.2.x och senare
Uppdatera ECE-verktyg paket.
Se versionsinformation för2002.0.8 och senare.
NOTE
Om du använder en version av Adobe Commerce i molninfrastrukturen som inte innehåller ece-tools måste du utföra en engångsuppgradering till ditt molnprojekt för att ta bort föråldrade paket. Om du använder ece-tools och du behöver uppdatera det, se Uppdatera ECE-verktygspaketet.

Konfigurationshantering

Äldre versioner av Adobe Commerce, som 2.1.4 eller senare till 2.2.x eller senare, använde en config.local.php fil för Configuration Management. Adobe Commerce version 2.2.0 och senare använder config.php -filen, som fungerar exakt som config.local.php -filen, men den har olika konfigurationsinställningar som innehåller en lista över dina aktiverade moduler och ytterligare konfigurationsalternativ.

När du uppgraderar från en äldre version måste du migrera config.local.php filen som ska användas i det nyare config.php -fil. Gör så här för att säkerhetskopiera konfigurationsfilen och skapa en.

Skapa en tillfällig config.php fil:

  1. Skapa en kopia av config.local.php fil och namnge den config.php.

  2. Lägg till den här filen i app/etc projektmapp.

  3. Lägg till och implementera filen på din gren.

  4. Skicka filen till din integrationsgren.

  5. Fortsätt med uppgraderingsprocessen.

WARNING
Efter uppgraderingen kan du ta bort config.php och generera en ny, fullständig fil. Du kan bara ta bort den här filen om du vill ersätta den här gången. När en ny, fullständig config.php kan du inte ta bort filen för att skapa en ny. Se Konfigurationshantering och distribution av pipeline.

Verifiera Zend Framework Composer-beroenden

Vid uppgradering till 2.3.x eller senare från 2.2.x, verifiera att Zend Framework-beroenden har lagts till i autoload egenskapen för composer.json som stöder Laminas. Denna plugin stöder nya krav för Zend Framework, som har migrerat till Laminas-projektet. Se Migrering av Zend Framework till Laminas ProjectMagento DevBlog.

För att kontrollera auto-load:psr-4 konfiguration:

  1. Byt till din projektkatalog på din lokala arbetsstation.

  2. Ta en titt på er integreringsgren.

  3. Öppna composer.json i en textredigerare.

  4. Kontrollera autoload:psr-4 för Zend plugin-hanterarimplementeringen för styrenheternas beroende.

    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. Om Zend-beroendet saknas uppdaterar du composer.json fil:

    • Lägg till följande rad i autoload:psr-4 -avsnitt.

      code language-json
      "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
      
    • Uppdatera projektberoenden.

      code language-bash
      composer update
      
    • Lägg till, implementera och push-ändra kod.

      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>
      
    • Sammanfoga ändringarna i mellanlagringsmiljön och sedan till Produktion.

Konfigurationsfiler

Innan du uppgraderar programmet måste du uppdatera dina projektkonfigurationsfiler så att de tar hänsyn till ändringar av standardkonfigurationsinställningarna för Adobe Commerce i molninfrastrukturen eller för programmet. De senaste standardinställningarna finns i magento-cloud GitHub-databas.

.magento.app.yaml

Granska alltid värdena i .magento.app.yaml -filen för den installerade versionen eftersom den styr hur ditt program bygger och distribuerar till molninfrastrukturen. Följande exempel är för version 2.4.6 och använder Composer 2.2.21. The build: flavor: egenskapen används inte för Composer 2.x; se Installera och använda Composer 2.

Uppdatera .magento.app.yaml fil:

  1. Byt till din projektkatalog på din lokala arbetsstation.

  2. Öppna och redigera magento.app.yaml -fil.

  3. Uppdatera PHP-alternativen.

    code language-yaml
    type: php:8.2
    
    build:
        flavor: none
    dependencies:
        php:
            composer/composer: '2.2.21'
    
  4. Ändra hooks property build och deploy kommandon.

    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. Lägg till följande miljövariabler i slutet av filen.

    För Adobe Commerce 2.2.x till 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. Spara filen. Verkställ eller skicka inga ändringar till fjärrmiljön än.

  7. Fortsätt med uppgraderingsprocessen.

composer.json

Kontrollera alltid att beroendena i composer.json filen är kompatibel med Adobe Commerce.

Uppdatera composer.json för Adobe Commerce version 2.4.4 och senare:

  1. Lägg till följande allow-plugins till config avsnitt:

    code language-json
    "config": {
       "allow-plugins": {
          "dealerdirect/phpcodesniffer-composer-installer": true,
          "laminas/laminas-dependency-plugin": true,
          "magento/*": true
       }
    },
    
  2. Lägg till följande plugin-program i require avsnitt:

    code language-json
    "require": {
        "magento/composer-root-update-plugin": "^2.0.3"
    },
    
  3. Lägg till följande komponent i extra:component_paths avsnitt:

    code language-json
    "extra": {
       "component_paths": {
          "tinymce/tinymce": "lib/web/tiny_mce_5"
       },
    },
    
  4. Spara filen. Verkställ eller skicka inte ändringar till din gren än.

  5. Fortsätt med uppgraderingsprocessen.

Säkerhetskopiering av projekt

Vi rekommenderar att du skapar en säkerhetskopia av ditt projekt före en uppgradering. Gör så här för att säkerhetskopiera integrerings-, mellanlagrings- och produktionsmiljöer.

Säkerhetskopiera databasen och koden för integreringsmiljön:

  1. Skapa en lokal säkerhetskopia av fjärrdatabasen.

    code language-bash
    magento-cloud db:dump
    
    note note
    NOTE
    The magento-cloud db:dump kommandot kör mysqldump med kommandot --single-transaction -flagga som gör att du kan säkerhetskopiera databasen utan att låsa tabellerna.
  2. Säkerhetskopiera kod och media.

    code language-bash
    php bin/magento setup:backup --code [--media]
    

    Du kan också utelämna [--media] om du har ett stort antal statiska filer som redan finns i källkontrollen.

Så här säkerhetskopierar du databasen för förproduktionsmiljö eller produktionsmiljö innan du distribuerar:

  1. Använd SSH för att logga in i fjärrmiljön.

  2. Skapa en databasdump. Om du vill välja en målkatalog för databasdumpen använder du --dump-directory alternativ.

    code language-bash
    vendor/bin/ece-tools db-dump
    

    Dumpningsåtgärden skapar en dump-<timestamp>.sql.gz arkivera filen i din fjärrprojektkatalog. Se Säkerhetskopiera databas.

Programuppgradering

Granska tjänsteversioner information om de senaste versionskraven innan du uppgraderar programmet.

Så här uppgraderar du programversionen:

  1. Byt till din projektkatalog på din lokala arbetsstation.

  2. Ange uppgraderingsversionen med versionsbegränsningssyntax.

    code language-bash
    composer require "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-update
    
    note note
    NOTE
    Du måste använda versionsbegränsningssyntaxen för att kunna uppdatera ece-tools paket. Versionsbegränsningen finns i composer.json -fil för versionen av programmall som du använder för uppgraderingen.
  3. Uppdatera projektet.

    code language-bash
    composer update
    
  4. Lägg till, implementera och push-ändra kod.

    code language-bash
    git add -A
    
    code language-bash
    git commit -m "Upgrade"
    
    code language-bash
    git push origin <branch-name>
    

    git add -A måste lägga till alla ändrade filer i källkontrollen på grund av hur Composer konverterar baspaket. Båda composer install och composer update konvertera filer från baspaketet (magento/magento2-base och magento/magento2-ee-base) till paketroten.

    De filer som Composer konverterar tillhör den nya versionen av Adobe Commerce, som skriver över den gamla versionen av samma filer. För närvarande är konvertering inaktiverat i Adobe Commerce, så du måste lägga till de konverterade filerna i källkontrollen.

  5. Vänta tills distributionen är klar.

  6. Verifiera uppgraderingen i integrerings-, mellanlagrings- eller produktionsmiljön genom att använda SSH för att logga in och kontrollera versionen.

    code language-bash
    php bin/magento --version
    

Skapa filen config.php

Som anges i Konfigurationshanteringmåste du skapa en uppdaterad config.php -fil. Slutför eventuella ytterligare konfigurationsändringar via administratören i din integreringsmiljö.

Skapa en systemspecifik konfigurationsfil:

  1. Använd ett SSH-kommando från terminalen för att generera /app/etc/config.php för miljön.

    code language-bash
    ssh <SSH-URL> "<Command>"
    

    För Pro kör du scd-dumpintegration gren:

    code language-bash
    ssh <project-id-integration>@ssh.us.magentosite.cloud "php vendor/bin/ece-tools config:dump"
    
  2. Överför config.php till dina lokala arbetsstationer med rsync eller scp. Du kan bara lägga till den här filen lokalt i grenen.

    code language-bash
    rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
    
  3. Lägg till, implementera och push-ändra kod.

    code language-bash
    git add app/etc/config.php && git commit -m "Add system-specific configuration" && git push origin master
    

    Detta genererar en uppdaterad /app/etc/config.php med en modullista och konfigurationsinställningar.

WARNING
För en uppgradering tar du bort config.php -fil. När den här filen har lagts till i koden bör du not ta bort den. Om du måste ta bort eller redigera inställningar redigerar du filen manuellt.

Uppgradera tillägg

Granska tillägg- och modulsidor från tredje part på Marketplace eller andra företagswebbplatser och verifiera stödet för Adobe Commerce och Adobe Commerce i molninfrastrukturen. Om du måste uppgradera tillägg och moduler från tredje part rekommenderar Adobe att du arbetar i en ny integreringsgren med dina tillägg inaktiverade.

Verifiera och uppgradera dina tillägg:

  1. Skapa en gren på din lokala arbetsstation.

  2. Inaktivera tilläggen efter behov.

  3. Ladda ned tilläggsuppgraderingar när de blir tillgängliga.

  4. Installera uppgraderingen enligt dokumentationen från tredje part.

  5. Aktivera och testa tillägget.

  6. Lägg till, implementera och skicka kodändringarna till fjärrkontrollen.

  7. Kör till och testa i er integreringsmiljö.

  8. Kör till mellanlagringsmiljön för att testa i en förproduktionsmiljö.

Adobe rekommenderar starkt att du uppgraderar din produktionsmiljö före inkluderar de uppgraderade tilläggen i webbplatsens startprocess.

NOTE
När du uppgraderar din programversion uppdateras uppgraderingsprocessen till den senaste versionen av Snabb CDN-modul automatiskt.

Felsök uppgraderingen

Om uppgraderingen misslyckades får du ett felmeddelande i webbläsaren om att du inte kan komma åt butiken eller administrationspanelen:

There has been an error processing your request
Exception printing is disabled by default for security reasons.
  Error log record number: <error-number>

Lös felet:

  1. Byt till din projektkatalog på din lokala arbetsstation.

  2. Använd SSH för att logga in i fjärrmiljön.

    code language-bash
    magento-cloud ssh
    
  3. Öppna ./app/var/report/<error number> -fil.

  4. Granska loggarna och fastställa orsaken till problemet.

  5. Lägg till, implementera och push-ändra kod.

    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