Aggiorna versione Commerce
Puoi aggiornare la base di codice di Adobe Commerce a una versione più recente. Prima di aggiornare il progetto, controllare i requisiti di sistema nella Guida all'installazione per i requisiti della versione più recente del software.
A seconda della configurazione del progetto, le attività di aggiornamento possono includere quanto segue:
- I servizi di aggiornamento, come MariaDB (MySQL), OpenSearch, RabbitMQ e Redis, sono compatibili con le nuove versioni di Adobe Commerce.
- Convertire un file di gestione della configurazione precedente.
- Aggiornare il file
.magento.app.yaml
con le nuove impostazioni per hook e variabili di ambiente. - Aggiorna le estensioni di terze parti alla versione più recente supportata.
- Aggiornare il file
.gitignore
.
Staging
e Production
..magento.app.yaml
e services.yaml
aggiornati e indicare la versione PHP nel ticket. Per le modifiche self-service alle impostazioni di versione PHP, estensioni o ambiente, vedere Impostazioni PHP in Configurazione applicazione.Aggiornamento da versioni precedenti
Se stai iniziando un aggiornamento da una versione di Commerce precedente alla 2.1, alcune restrizioni nella base di codice di Adobe Commerce possono influire sulla possibilità di aggiornare a una versione specifica degli strumenti ECE o di aggiornare alla versione successiva di Commerce supportata. Utilizzare la tabella seguente per determinare il percorso migliore:
Consulta le note sulla versione di 2002.0.9 e successive versioni di 2002.0.x.
ece-tools
, devi eseguire un aggiornamento una tantum al progetto cloud per rimuovere i pacchetti obsoleti. Se si utilizza il pacchetto ece-tools
e si desidera aggiornarlo, vedere Aggiornare il pacchetto ECE-Tools.Gestione della configurazione
Le versioni precedenti di Adobe Commerce, ad esempio 2.1.4 o successive alla versione 2.2.x o successive, utilizzavano un file config.local.php
per la gestione della configurazione. Adobe Commerce versione 2.2.0 e successive utilizzano il file config.php
, che funziona esattamente come il file config.local.php
, ma con impostazioni di configurazione diverse che includono un elenco dei moduli abilitati e opzioni di configurazione aggiuntive.
Quando si esegue l'aggiornamento da una versione precedente, è necessario migrare il file config.local.php
per utilizzare il file config.php
più recente. Per eseguire il backup del file di configurazione e crearne uno, effettua le seguenti operazioni.
Per creare un file config.php
temporaneo:
-
Creare una copia del file
config.local.php
e denominarloconfig.php
. -
Aggiungi il file alla cartella
app/etc
del progetto. -
Aggiungi e invia il file al tuo ramo.
-
Invia il file al ramo di integrazione.
-
Continuare con il processo di aggiornamento.
config.php
e generare un nuovo file completo. Puoi eliminare questo file solo una volta per sostituirlo. Dopo aver generato un nuovo file config.php
completo, non è possibile eliminare il file per generarne uno nuovo. Consulta Gestione della configurazione e distribuzione della pipeline.Verificare le dipendenze del compositore Zend Framework
Durante l'aggiornamento a 2.3.x o versione successiva dalla versione 2.2.x, verificare che le dipendenze di Zend Framework siano state aggiunte alla proprietà autoload
del file composer.json
per supportare Laminas. Questo plug-in supporta i nuovi requisiti per Zend Framework, che è migrato al progetto Laminas. Vedi Migrazione di Zend Framework al progetto Laminas nel DevBlog Magento.
Per controllare la configurazione auto-load:psr-4
:
-
Sulla workstation locale, passa alla directory del progetto.
-
Consulta il ramo dell’integrazione.
-
Aprire il file
composer.json
in un editor di testo. -
Controllare la sezione
autoload:psr-4
per l'implementazione del gestore del plug-in Zend per la dipendenza dei 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/" }, }
-
Se manca la dipendenza Zend, aggiornare il file
composer.json
:-
Aggiungere la riga seguente alla sezione
autoload:psr-4
.code language-json "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
-
Aggiornare le dipendenze del progetto.
code language-bash composer update
-
Aggiungi, conferma e invia modifiche al codice.
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>
-
Unisci le modifiche apportate all’ambiente di staging e quindi a Produzione.
-
File di configurazione
Prima di aggiornare l’applicazione, è necessario aggiornare i file di configurazione del progetto per tenere conto delle modifiche alle impostazioni di configurazione predefinite per Adobe Commerce sull’infrastruttura cloud o l’applicazione. Le impostazioni predefinite più recenti si trovano nell'archivio GitHub magento-cloud.
.magento.app.yaml
Controlla sempre i valori contenuti nel file .magento.app.yaml per la versione installata, in quanto controlla il modo in cui l'applicazione viene generata e distribuita nell'infrastruttura cloud. L’esempio seguente è per la versione 2.4.7 e utilizza Composer 2.7.2. La proprietà build: flavor:
non è utilizzata per Composer 2.x; vedere Installazione e utilizzo di Composer 2.
Per aggiornare il file .magento.app.yaml
:
-
Sulla workstation locale, passa alla directory del progetto.
-
Aprire e modificare il file
magento.app.yaml
. -
Aggiornare le opzioni PHP.
code language-yaml type: php:8.3 build: flavor: none dependencies: php: composer/composer: '2.7.2'
-
Modificare la proprietà
hooks
build
e i comandideploy
.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
-
Aggiungi le seguenti variabili di ambiente alla fine del file.
Per Adobe Commerce da 2.2.x a 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'
Per 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'
-
Salva il file. Non eseguire ancora il commit o il push delle modifiche nell'ambiente remoto.
-
Continuare con il processo di aggiornamento.
composer.json
Prima di eseguire l'aggiornamento, verificare sempre che le dipendenze nel file composer.json
siano compatibili con la versione di Adobe Commerce.
Per aggiornare il file composer.json
per Adobe Commerce versione 2.4.4 e successive:
-
Aggiungi
allow-plugins
alla sezioneconfig
:code language-json "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, "laminas/laminas-dependency-plugin": true, "magento/*": true } },
-
Aggiungi il seguente plug-in alla sezione
require
:code language-json "require": { "magento/composer-root-update-plugin": "^2.0.3" },
-
Aggiungi il seguente componente alla sezione
extra:component_paths
:code language-json "extra": { "component_paths": { "tinymce/tinymce": "lib/web/tiny_mce_5" }, },
-
Salva il file. Non eseguire ancora il commit o il push delle modifiche nel ramo.
-
Continuare con il processo di aggiornamento.
Backup del progetto
È consigliabile creare un backup del progetto prima di un aggiornamento. Utilizza i seguenti passaggi per eseguire il backup degli ambienti di integrazione, staging e produzione.
Per eseguire il backup del database e del codice dell'ambiente di integrazione:
-
Creare un backup locale del database remoto.
code language-bash magento-cloud db:dump
note note NOTE Il comando magento-cloud db:dump
esegue il comando mysqldump con il flag--single-transaction
, che consente di eseguire il backup del database senza bloccare le tabelle. -
Eseguire il backup del codice e dei supporti.
code language-bash php bin/magento setup:backup --code [--media]
Se si desidera, è possibile omettere
[--media]
se il numero di file statici che si trovano già nel controllo del codice sorgente è elevato.
Per eseguire il backup del database dell'ambiente di staging o di produzione prima della distribuzione:
-
Utilizza SSH per accedere all’ambiente remoto.
-
Crea un dump del database 🔗. Per scegliere una directory di destinazione per il dump del database, utilizzare l'opzione
--dump-directory
.code language-bash vendor/bin/ece-tools db-dump
L'operazione di dump crea un file di archivio
dump-<timestamp>.sql.gz
nella directory di progetto remota. Vedere Backup del database.
Aggiornamento dell’applicazione
Prima di aggiornare l'applicazione, esaminare le informazioni sulle versioni del servizio per conoscere i requisiti delle versioni più recenti del software.
Per aggiornare la versione dell'applicazione:
-
Sulla workstation locale, passa alla directory del progetto.
-
Impostare la versione di aggiornamento utilizzando la sintassi version constraint.
code language-bash composer require "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-update
note note NOTE Per aggiornare correttamente il pacchetto ece-tools
, è necessario utilizzare la sintassi del vincolo di versione. È possibile trovare il vincolo di versione nel filecomposer.json
per la versione del modello di applicazione utilizzato per l'aggiornamento. -
Aggiorna il progetto.
code language-bash composer update
-
Esaminare le patch attualmente applicate:
-
Se nella directory
m2-hotfixes
sono installate patch, invia un ticket di supporto Adobe Commerce e collabora con il supporto Adobe Commerce per verificare quali patch possono ancora essere applicate alla nuova versione. Rimuovere le patch non applicabili dalla directorym2-hotfixes
. -
Se nel file
.magento.env.yaml
sono state applicate [patch di qualità], verificare se è ancora possibile applicarle alla nuova versione. Rimuovere le patch non applicabili dalla sezioneQUALITY_PATCHES
del file.magento.env.yaml
.
Metodo 1: Verificare le versioni applicabili nelle note sulla versione delle patch di qualità
Metodo 2: Visualizzare le patch e lo stato disponibili
Metodo 3: Cerca patch
-
-
Aggiungi, conferma e invia modifiche al codice.
code language-bash git add -A
code language-bash git commit -m "Upgrade"
code language-bash git push origin <branch-name>
git add -A
è necessario per aggiungere tutti i file modificati al controllo del codice sorgente a causa del modo in cui i pacchetti di base di Marshals Composer vengono eseguiti. Entrambi i file di marshallingcomposer install
ecomposer update
dal pacchetto di base (magento/magento2-base
emagento/magento2-ee-base
) nella radice del pacchetto.I file che Composer marshalling appartengono alla nuova versione di Adobe Commerce, per sovrascrivere la versione obsoleta degli stessi file. Attualmente, il marshalling è disabilitato in Adobe Commerce, pertanto è necessario aggiungere i file marshallati al controllo del codice sorgente.
-
Attendere il completamento della distribuzione.
-
Verifica l’aggiornamento nell’ambiente di integrazione, staging o produzione utilizzando SSH per accedere e controllare la versione.
code language-bash php bin/magento --version
Creare un file config.php
Come indicato in Gestione configurazione, dopo l'aggiornamento è necessario creare un file config.php
aggiornato. Completa eventuali modifiche aggiuntive alla configurazione tramite l’Amministratore nell’ambiente di integrazione.
Per creare un file di configurazione specifico del sistema:
-
Dal terminale, utilizzare un comando SSH per generare il file
/app/etc/config.php
per l'ambiente.code language-bash ssh <SSH-URL> "<Command>"
Ad esempio, per Pro, per eseguire
scd-dump
sul ramointegration
:code language-bash ssh <project-id-integration>@ssh.us.magentosite.cloud "php vendor/bin/ece-tools config:dump"
-
Trasferire il file
config.php
nelle workstation locali utilizzandorsync
oscp
. Puoi aggiungere questo file al ramo solo localmente.code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Aggiungi, conferma e invia modifiche al codice.
code language-bash git add app/etc/config.php && git commit -m "Add system-specific configuration" && git push origin master
Viene generato un file
/app/etc/config.php
aggiornato con un elenco di moduli e impostazioni di configurazione.
config.php
. Una volta aggiunto il file al codice, devi non eliminarlo. Se è necessario rimuovere o modificare le impostazioni, modificare il file manualmente.Aggiornare le estensioni
Controlla le pagine delle estensioni e dei moduli di terze parti nel Marketplace o in altri siti aziendali e verifica il supporto per Adobe Commerce e Adobe Commerce sull’infrastruttura cloud. Se devi aggiornare estensioni e moduli di terze parti, Adobe consiglia di lavorare in un nuovo ramo di integrazione con le estensioni disabilitate.
Per verificare e aggiornare le estensioni:
-
Crea una filiale sulla workstation locale.
-
Disattiva le estensioni in base alle esigenze.
-
Se disponibile, scarica gli aggiornamenti dell'estensione.
-
Installa l’aggiornamento come descritto nella documentazione di terze parti.
-
Abilita e verifica l’estensione.
-
Aggiungi, esegui il commit e invia le modifiche al codice in remoto.
-
Effettua il push e il test nell’ambiente di integrazione.
-
Effettua il push all’ambiente di staging per il test in un ambiente di pre-produzione.
Adobe consiglia vivamente di aggiornare l'ambiente di produzione prima, incluse le estensioni aggiornate nella procedura di avvio del sito.
Risoluzione dei problemi di aggiornamento
Se l’aggiornamento non è riuscito, viene visualizzato un messaggio di errore nel browser che indica che non è possibile accedere alla vetrina o al pannello di amministrazione:
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: <error-number>
Per risolvere l'errore:
-
Sulla workstation locale, passa alla directory del progetto.
-
Utilizza SSH per accedere all’ambiente remoto.
code language-bash magento-cloud ssh
-
Aprire il file
./app/var/report/<error number>
. -
Esaminare i registri e determinare l'origine del problema.
-
Aggiungi, conferma e invia modifiche al codice.
code language-bash git add -A && git commit -m "Fixed deployment failure" && git push origin <branch-name>