Uppgradera Commerce
Du kan uppgradera Adobe Commerce kodbas till en nyare version. Innan du uppgraderar ditt projekt bör du läsa Systemkraven i installationshandboken för att få information om de senaste programvaruversionskraven.
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 filen
.magento.app.yaml
med nya inställningar för kopplingar och miljövariabler. - Uppgradera tillägg från tredje part till den senaste version som stöds.
- Uppdatera filen
.gitignore
.
Staging
- och Production
-miljöer..magento.app.yaml
- och services.yaml
-filer och ange PHP-versionen i biljetten. Om du vill göra ändringar i PHP-version, tillägg eller miljöinställningar för självbetjäning läser du PHP-inställningar i Programkonfiguration.Uppgradera från äldre versioner
Om du påbörjar en uppgradering från en version av Commerce som är äldre än 2.1 kan vissa begränsningar i Adobe Commerce kodbas påverka din möjlighet att uppdatera till en specifik ECE-verktygsversion eller att uppgradera till nästa version av Commerce som stöds. Använd följande tabell för att fastställa den bästa banan:
ece-tools
måste du utföra en engångsuppgradering till ditt molnprojekt för att ta bort föråldrade paket. Om du för närvarande använder paketet ece-tools
och behöver uppdatera det, se Uppdatera paketet ECE-Tools.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. I Adobe Commerce version 2.2.0 och senare används filen config.php
, som fungerar exakt som filen config.local.php
men som har olika konfigurationsinställningar som innehåller en lista över aktiverade moduler och ytterligare konfigurationsalternativ.
När du uppgraderar från en äldre version måste du migrera filen config.local.php
för att kunna använda den nyare filen config.php
. Gör så här för att säkerhetskopiera konfigurationsfilen och skapa en.
Så här skapar du en tillfällig config.php
fil:
-
Skapa en kopia av filen
config.local.php
och ge den namnetconfig.php
. -
Lägg till den här filen i mappen
app/etc
i ditt projekt. -
Lägg till och implementera filen på din gren.
-
Skicka filen till din integrationsgren.
-
Fortsätt med uppgraderingsprocessen.
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 du har genererat en ny, fullständig config.php
-fil kan du inte ta bort filen för att skapa en ny. Se Konfigurationshantering och distribution av pipeline.Verifiera Zend Framework Composer-beroenden
När du uppgraderar till 2.3.x eller senare från 2.2.x kontrollerar du att Zend Framework-beroenden har lagts till i autoload
-egenskapen för composer.json
-filen 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 Project på Magento DevBlog.
Så här kontrollerar du auto-load:psr-4
-konfigurationen:
-
Byt till din projektkatalog på din lokala arbetsstation.
-
Ta en titt på er integreringsgren.
-
Öppna filen
composer.json
i en textredigerare. -
Kontrollera avsnittet
autoload:psr-4
för Zend plugin-hanterarimplementering 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/" }, }
-
Om Zend-beroendet saknas uppdaterar du filen
composer.json
:-
Lägg till följande rad i avsnittet
autoload:psr-4
.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 standardvärdena finns i GitHub-databasen magento-cloud.
.magento.app.yaml
Granska alltid värdena i filen .magento.app.yaml för den installerade versionen, eftersom den styr hur programmet bygger och distribuerar till molninfrastrukturen. Följande exempel är för version 2.4.7 och använder Composer 2.7.2. Egenskapen build: flavor:
används inte för Composer 2.x; se Installera och använda Composer 2.
Så här uppdaterar du .magento.app.yaml
-filen:
-
Byt till din projektkatalog på din lokala arbetsstation.
-
Öppna och redigera filen
magento.app.yaml
. -
Uppdatera PHP-alternativen.
code language-yaml type: php:8.3 build: flavor: none dependencies: php: composer/composer: '2.7.2'
-
Ändra kommandona för
hooks
-egenskapenbuild
ochdeploy
.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
-
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'
-
Spara filen. Verkställ eller skicka inga ändringar till fjärrmiljön än.
-
Fortsätt med uppgraderingsprocessen.
composer.json
Kontrollera alltid att beroendena i filen composer.json
är kompatibla med Adobe Commerce-versionen innan du uppgraderar.
Så här uppdaterar du composer.json
-filen för Adobe Commerce version 2.4.4 och senare:
-
Lägg till följande
allow-plugins
i avsnittetconfig
:code language-json "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, "laminas/laminas-dependency-plugin": true, "magento/*": true } },
-
Lägg till följande plugin-program i avsnittet
require
:code language-json "require": { "magento/composer-root-update-plugin": "^2.0.3" },
-
Lägg till följande komponent i avsnittet
extra:component_paths
:code language-json "extra": { "component_paths": { "tinymce/tinymce": "lib/web/tiny_mce_5" }, },
-
Spara filen. Verkställ eller skicka inte ändringar till din gren än.
-
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å här säkerhetskopierar du databasen och koden för integreringsmiljön:
-
Skapa en lokal säkerhetskopia av fjärrdatabasen.
code language-bash magento-cloud db:dump
note note NOTE Kommandot magento-cloud db:dump
kör kommandot mysqldump med flaggan--single-transaction
som gör att du kan säkerhetskopiera databasen utan att låsa tabellerna. -
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:
-
Använd SSH för att logga in i fjärrmiljön.
-
Skapa en databasdump. Om du vill välja en målkatalog för DB-dumpen använder du alternativet
--dump-directory
.code language-bash vendor/bin/ece-tools db-dump
Dumpningsåtgärden skapar en
dump-<timestamp>.sql.gz
-arkivfil i fjärrprojektkatalogen. Se Säkerhetskopiera databas.
Programuppgradering
Granska informationen om tjänstversionerna för de senaste programversionskraven innan du uppgraderar ditt program.
Så här uppgraderar du programversionen:
-
Byt till din projektkatalog på din lokala arbetsstation.
-
Ange uppgraderingsversionen med syntaxen för versionsbegränsning.
code language-bash composer require "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-update
note note NOTE Du måste använda syntaxen för versionsbegränsning för att kunna uppdatera paketet ece-tools
. Du hittar versionsbegränsningen i filencomposer.json
för den version av programmallen som du använder för uppgraderingen. -
Uppdatera projektet.
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 "Upgrade"
code language-bash git push origin <branch-name>
git add -A
krävs för att lägga till alla ändrade filer i källkontrollen på grund av hur Composer konverterar baspaket. Bådecomposer install
ochcomposer update
konverterar filer från baspaketet (magento/magento2-base
ochmagento/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.
-
Vänta tills distributionen är klar.
-
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 nämndes i Konfigurationshantering måste du skapa en uppdaterad config.php
-fil efter uppgraderingen. Slutför eventuella ytterligare konfigurationsändringar via administratören i din integreringsmiljö.
Så här skapar du en systemspecifik konfigurationsfil:
-
Använd ett SSH-kommando från terminalen för att generera filen
/app/etc/config.php
för miljön.code language-bash ssh <SSH-URL> "<Command>"
Om du till exempel vill köra
scd-dump
på grenenintegration
i Pro:code language-bash ssh <project-id-integration>@ssh.us.magentosite.cloud "php vendor/bin/ece-tools config:dump"
-
Överför filen
config.php
till dina lokala arbetsstationer medrsync
ellerscp
. 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
-
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
-fil med en modullista och konfigurationsinställningar.
config.php
. När den här filen har lagts till i koden ska du inte 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.
Så här verifierar och uppgraderar du dina tillägg:
-
Skapa en gren på din lokala arbetsstation.
-
Inaktivera tilläggen efter behov.
-
Ladda ned tilläggsuppgraderingar när de blir tillgängliga.
-
Installera uppgraderingen enligt dokumentationen från tredje part.
-
Aktivera och testa tillägget.
-
Lägg till, implementera och skicka kodändringarna till fjärrkontrollen.
-
Kör till och testa i er integreringsmiljö.
-
Kör till mellanlagringsmiljön för att testa i en förproduktionsmiljö.
Adobe rekommenderar starkt att du uppgraderar din produktionsmiljö före, inklusive de uppgraderade tilläggen i din webbplatsstartprocess.
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>
Så här löser du felet:
-
Byt till din projektkatalog på din lokala arbetsstation.
-
Använd SSH för att logga in i fjärrmiljön.
code language-bash magento-cloud ssh
-
Öppna filen
./app/var/report/<error number>
. -
Granska loggarna och ta reda på orsaken till problemet.
-
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>