Applicare le patch

Le patch cloud per Commerce e lo strumento per patch di qualità distribuiscono le patch nell'applicazione Adobe Commerce installata.

  • Il pacchetto Patch cloud per Commerce fornisce le patch necessarie con correzioni critiche
  • Le patch di qualità forniscono correzioni di qualità facoltative a basso impatto come singole patch che non contengono modifiche non compatibili con le versioni precedenti

Per un elenco completo delle patch rilasciate, vedere Patch disponibili nella Guida agli strumenti operativi di Commerce.

Entrambi i pacchetti migliorano l’integrazione di tutte le versioni di Adobe Commerce con gli ambienti Cloud e supportano la distribuzione rapida di correzioni critiche, opzionali e personalizzate. È possibile utilizzare questi pacchetti per applicare, ripristinare e visualizzare informazioni generali su tutte le singole patch disponibili per Commerce.

TIP
Puoi utilizzare lo strumento Patch di qualità e Patch cloud per Commerce come pacchetti autonomi per i progetti Magento Open Source e Adobe Commerce. È consigliabile utilizzare lo strumento Patch di qualità per i progetti non cloud.

Quando si distribuiscono le modifiche all'ambiente remoto, il pacchetto ece-tools utilizza magento/magento-cloud-patches e magento/quality-patches per verificare la presenza di patch in sospeso e le applica automaticamente nell'ordine seguente:

  1. Applica tutte le patch Commerce richieste incluse nel pacchetto Patch cloud per Commerce.
  2. Applicare le patch Commerce opzionali selezionate incluse nello strumento Patch di qualità.
  3. Applicare le patch personalizzate nella directory /m2-hotfixes in ordine alfabetico in base al nome della patch.
NOTE
Quando si aggiorna il pacchetto ece-tools o il pacchetto Patch cloud per Commerce, le ultime patch richieste vengono applicate alla successiva distribuzione del progetto oppure è possibile distribuirle immediatamente utilizzando il comando CLI ece-patches apply e ridistribuendo l'ambiente Cloud. Impossibile ignorare patch richieste durante il processo di distribuzione.

Prerequisiti

TIP
Prima di iniziare un aggiornamento o un processo di applicazione di patch, crea un ramo attivo dall’ambiente di integrazione ed estrai il nuovo ramo sulla workstation locale. La destinazione di un ramo all’aggiornamento o al processo di patch consente di evitare interferenze con il lavoro in corso.

Lo strumento Quality Patches è una dipendenza per le patch cloud per Commerce e il pacchetto ece-tools. Per applicare le ultime patch, è necessario che sia installata la versione più recente di ECE-Tools. La versione minima richiesta di ECE-Tools è la 2002.1.2.

Visualizza patch e stato disponibili

Per visualizzare l'elenco delle singole patch disponibili:

php ./vendor/bin/ece-patches status

Risposta di esempio:

More detailed information about patches you can find on https://support.magento.com/
╔════════════════╤═════════════════════════════════════════════════╤══════════╤═════════════╤═════════════════════════════════╗
║ Id             │ Title                                           │ Type     │ Status      │ Details                         ║
╠════════════════╪═════════════════════════════════════════════════╪══════════╪═════════════╪═════════════════════════════════╣
║ MAGECLOUD-5069 │ FPC is getting disabled during deployments      │ Required │ Applied     │ Affected components:            ║
║                │                                                 │          │             │  - magento/module-page-cache    ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ MCLOUD-5650    │ Hold deployment config after reading from file  │ Required │ Applied     │ Affected components:            ║
║                │                                                 │          │             │  - magento/framework            ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ MCLOUD-5684    │ Pagination Not working - product_list_limit=all │ Required │ Applied     │ Affected components:            ║
║                │                                                 │          │             │  - magento/module-elasticsearch ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ MC-65837       │ Fix load balancer issue                         │Deprecated│ Applied     │ Recommended replacement: MC-1   ║
║                │                                                 │          │             │ Affected components:            ║
║                │                                                 │          │             │  - magento/framework            ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ BUNDLE-2554    │ Set Payment info bug                            │ Required │ Not applied │ Affected components:            ║
║                │                                                 │          │             │  - amzn/amazon-pay-module       ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ MC-1           │ Fixes issue 1                                   │ Optional │ Applied     │ Affected components:            ║
║                │                                                 │          │             │  - magento/module-cms           ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ MC-2           │ Fixes issue 2                                   │ Optional │ Not applied │ Affected components:            ║
║                │                                                 │          │             │  - magento/module-cms           ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ MC-3           │ Fixes issue 3                                   │ Optional │ Not applied │ Required patches:               ║
║                │                                                 │          │             │  - MC-2                         ║
║                │                                                 │          │             │ Affected components:            ║
║                │                                                 │          │             │  - magento/module-cms           ║
╟────────────────┼─────────────────────────────────────────────────┼──────────┼─────────────┼─────────────────────────────────╢
║ N/A            │ ../m2-hotfixes/MDVA_custom__2.3.5_ce.patch      │ Custom   │ N/A         │ Affected components:            ║
║                │                                                 │          │             │  - magento/module-framework     ║
╚════════════════╧═════════════════════════════════════════════════╧══════════╧═════════════╧═════════════════════════════════╝
Magento 2 Enterprise Edition, version 2.3.5.0

La tabella di stato contiene i seguenti tipi di informazioni:

  • Tipo:

    • Optional - Tutte le patch dello strumento Quality Patches e del pacchetto Cloud Patches sono opzionali per le installazioni di Adobe Commerce e di Magento Open Source. Per l’infrastruttura cloud di Adobe Commerce, tutte le patch sono opzionali.
    • Required - Tutte le patch del pacchetto Patch cloud per Commerce sono necessarie per i clienti Cloud.
    • Deprecated - La singola patch è contrassegnata come obsoleta. Si consiglia di ripristinarla se è stata applicata. Dopo aver ripristinato una patch obsoleta, questa non verrà più visualizzata nella tabella di stato.
    • Custom - Tutte le patch dalla directory 'm2-hotfixes'.
  • Stato:

    • Applied - La patch è stata applicata.
    • Not applied - La patch non è stata applicata.
    • N/A - Impossibile definire lo stato della patch a causa di conflitti.
  • Dettagli:

    • Affected components - Elenco dei moduli interessati.
    • Required patches - Elenco delle patch richieste (dipendenze).
    • Recommended replacement—La patch che si consiglia di sostituire con una patch obsoleta.

Applicare una patch in un ambiente locale

È possibile applicare le patch manualmente in un ambiente locale e testarle prima della distribuzione.

Per applicare singole patch in un ambiente di sviluppo locale:

  1. Aggiungere la variabile 'QUALITY_PATCH' al file .magento.env.yaml ed elencare le patch richieste al di sotto di esso.

    code language-yaml
    stage:
      build:
        QUALITY_PATCHES:
          - MCTEST-1002
          - MCTEST-1003
    
  2. Dalla directory principale del progetto, applica le patch.

    code language-bash
    php ./vendor/bin/ece-patches apply
    

    Il comando ece-patches apply applica le patch nell'ordine seguente:

    • Patch richieste
    • Singole patch facoltative
    • Patch personalizzate dalla directory /m2-hotfixes
  3. Cancella la cache.

    code language-bash
    php ./bin/magento cache:clean
    
  4. Testare le patch e apportare le modifiche necessarie alle patch personalizzate.

Applicare una patch in un ambiente remoto

WARNING
Si consiglia vivamente di sottoporre a test tutte le patch in un ambiente di integrazione o di staging prima di implementarle nell'ambiente di produzione.

Per applicare le patch in un ambiente remoto:

  1. Aggiungere la variabile QUALITY_PATCHES al file .magento.env.yaml ed elencare le patch richieste al di sotto.

    code language-yaml
    stage:
      build:
        QUALITY_PATCHES:
          - MCTEST-1002
          - MCTEST-1003
    
    note note
    NOTE
    Dopo l'aggiornamento a una nuova versione di Adobe Commerce, è necessario riapplicare le patch se non sono incluse nella nuova versione.
  2. Aggiungere, eseguire il commit e inviare il file .magento.env.yaml aggiornato.

    code language-bash
    git add .magento.env.yaml
    
    code language-bash
    git commit -m "Apply patch"
    
    code language-bash
    git push origin <branch-name>
    

Applicare una patch personalizzata

Durante la distribuzione, ECE-Tools applica tutte le patch di Adobe ed eventuali patch personalizzate aggiunte alla directory /m2-hotfixes nella directory principale del progetto.

NOTE
Tutti i nomi dei file patch devono terminare con l'estensione .patch.

Per applicare e testare una patch personalizzata in un ambiente cloud:

  1. Nella directory principale del progetto, creare una directory denominata m2-hotfixes se non esiste

    code language-bash
    mkdir m2-hotfixes
    
  2. Copiare il file patch nella directory /m2-hotfixes.

  3. Aggiungi, conferma e invia modifiche al codice.

    code language-bash
    git add m2-hotfixes/
    
    code language-bash
    git commit -m "Apply patch"
    
    code language-bash
    git push origin <branch-name>
    
    note note
    NOTE
    Assicurarsi di sottoporre a test tutte le patch in un ambiente di pre-produzione. Per Adobe Commerce sull'infrastruttura cloud, è possibile creare rami con il comando CLI magento-cloud environment:branch <branch-name>.

Ripristinare una patch personalizzata

Per ripristinare o disinstallare una patch personalizzata precedentemente applicata:

  1. Eliminare il file patch dalla directory /m2-hotfixes.

  2. Aggiungi, conferma e invia modifiche al codice.

    code language-bash
    git add m2-hotfixes/
    
    code language-bash
    git commit -m "Revert patch"
    
    code language-bash
    git push origin <branch-name>
    
    note note
    NOTE
    Assicurati di eseguire il test in un ambiente di pre-produzione. Per Adobe Commerce sull'infrastruttura cloud, è possibile creare rami con il comando CLI magento-cloud environment:branch <branch-name>.

Applicare patch a un progetto non Cloud

Utilizza lo strumento Patch di qualità per i progetti Magento Open Source e Adobe Commerce.

Ripristinare una patch in un ambiente locale

È possibile ripristinare tutte le patch applicate in precedenza in un ambiente di sviluppo locale utilizzando l'interfaccia CLI ece-patches.

Per ripristinare tutte le patch applicate:

php ./vendor/bin/ece-patches revert

Questo comando ripristina tutte le patch nell'ordine seguente:

  • Ripristina tutte le patch personalizzate applicate dalla directory /m2-hotfixes.
  • Ripristina tutte le singole patch facoltative applicate.
  • Ripristina tutte le patch richieste applicate.

Registrazione

Lo strumento Quality Patches registra tutte le operazioni nel file <Project_root>/var/log/patch.log.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26