Aplicar patches

Os Patches da Nuvem para o Commerce e a Ferramenta de Patches de Qualidade fornecem patches para o aplicativo Adobe Commerce instalado.

  • O pacote Cloud Patches for Commerce fornece os patches necessários com correções críticas
  • Os Patches de qualidade oferecem correções de qualidade opcionais de baixo impacto como patches individuais que não contêm alterações incompatíveis com versões anteriores

Consulte Patches Disponíveis no Guia de Ferramentas de Operações do Commerce para ver uma lista completa de patches lançados.

Ambos os pacotes melhoram a integração de todas as versões do Adobe Commerce com ambientes na nuvem e permitem a entrega rápida de correções críticas, opcionais e personalizadas. Você pode usar esses pacotes para aplicar, reverter e exibir informações gerais sobre todos os patches individuais disponíveis para o Commerce.

TIP
Você pode usar a Ferramenta de patches de qualidade e Patches na nuvem para Commerce como pacotes autônomos para projetos Magento Open Source e Adobe Commerce. Recomendamos o uso da Ferramenta de correções de qualidade para projetos que não estejam na nuvem.

Quando você implanta alterações no ambiente remoto, o pacote ece-tools usa magento/magento-cloud-patches e magento/quality-patches para verificar patches pendentes e os aplica automaticamente na seguinte ordem:

  1. Aplique todos os patches Commerce necessários incluídos no pacote Cloud Patches for Commerce.
  2. Aplique os patches Commerce opcionais selecionados incluídos na Ferramenta de patches de qualidade.
  3. Aplique patches personalizados no diretório /m2-hotfixes em ordem alfabética por nome de patch.
NOTE
Ao atualizar o pacote ece-tools ou o pacote Cloud Patches for Commerce, os patches necessários mais recentes serão aplicados na próxima vez que você implantar o projeto, ou você poderá implantá-los imediatamente usando o comando da CLI ece-patches apply e reimplantando o ambiente de Nuvem. Você não pode ignorar os patches necessários durante o processo de implantação.

Pré-requisitos

TIP
Antes de iniciar uma atualização ou um processo de patch, crie uma ramificação ativa do ambiente de integração e faça check-out da nova ramificação para a estação de trabalho local. Dedicar uma ramificação à atualização ou ao processo de patch ajuda a evitar interferência com o trabalho em andamento.

A Ferramenta de Patches de Qualidade é uma dependência dos Patches de Nuvem para Commerce e o pacote ece-tools. Para aplicar os patches mais recentes, você deve ter a versão mais recente de ECE-Tools instalada. A versão mínima exigida de ECE-Tools é 2002.1.2.

Exibir patches e status disponíveis

Para exibir a lista de patches individuais disponíveis:

php ./vendor/bin/ece-patches status

Exemplo de resposta:

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

A tabela de status contém os seguintes tipos de informações:

  • Tipo:

    • Optional—Todos os patches da Ferramenta de Patches de Qualidade e do pacote de Patches na Nuvem são opcionais para instalações do Adobe Commerce e do Magento Open Source. Para o Adobe Commerce na infraestrutura em nuvem, todos os patches são opcionais.
    • Required — Todos os patches do pacote Cloud Patches for Commerce são necessários para clientes da nuvem.
    • Deprecated—O patch individual é marcado como obsoleto e recomendamos revertê-lo se você o tiver aplicado. Após reverter um patch obsoleto, ele não será mais exibido na tabela de status.
    • Custom — Todos os patches do diretório 'm2-hotfixes'.
  • Status:

    • Applied — O patch foi aplicado.
    • Not applied—O patch não foi aplicado.
    • N/A—O status do patch não pode ser definido devido a conflitos.
  • Detalhes:

    • Affected components — A lista de módulos afetados.
    • Required patches — A lista de patches necessários (dependências).
    • Recommended replacement — O patch que é um substituto recomendado para um patch obsoleto.

Aplicar um patch em um ambiente local

Você pode aplicar patches manualmente em um ambiente local e testá-los antes de implantar.

Para aplicar patches individuais em um ambiente de desenvolvimento local:

  1. Adicione a variável 'QUALITY_PATCH' ao arquivo .magento.env.yaml e liste os patches necessários abaixo de.

    code language-yaml
    stage:
      build:
        QUALITY_PATCHES:
          - MCTEST-1002
          - MCTEST-1003
    
  2. Na raiz do projeto, aplique os patches.

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

    O comando ece-patches apply aplica patches na seguinte ordem:

    • Patches necessários
    • Patches individuais opcionais
    • Patches personalizados do diretório /m2-hotfixes
  3. Limpe o cache.

    code language-bash
    php ./bin/magento cache:clean
    
  4. Teste os patches e faça as alterações necessárias nos patches personalizados.

Aplicação de um patch em um ambiente remoto

WARNING
Recomendamos testar todos os patches em uma integração ou ambientes de preparo antes de implantar no ambiente de produção.

Para aplicar patches em um ambiente remoto:

  1. Adicione a variável QUALITY_PATCHES ao arquivo .magento.env.yaml e liste os patches necessários abaixo de.

    code language-yaml
    stage:
      build:
        QUALITY_PATCHES:
          - MCTEST-1002
          - MCTEST-1003
    
    note note
    NOTE
    Depois de atualizar para uma nova versão do Adobe Commerce, você deverá reaplicar os patches se eles não estiverem incluídos na nova versão.
  2. Adicione, confirme e envie por push o arquivo .magento.env.yaml atualizado.

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

Aplicar um patch personalizado

Ao implantar, o ECE-Tools aplica todos os patches de Adobe e qualquer patch personalizado que você adicionar ao diretório /m2-hotfixes na raiz do projeto.

NOTE
Todos os nomes de arquivo de patch devem terminar com a extensão .patch.

Para aplicar e testar um patch personalizado em um ambiente na nuvem:

  1. Na raiz do projeto, crie um diretório chamado m2-hotfixes se ele não existir

    code language-bash
    mkdir m2-hotfixes
    
  2. Copie o arquivo de patch para o diretório /m2-hotfixes.

  3. Adicionar, confirmar e enviar alterações de código.

    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
    Teste todos os patches em um ambiente de pré-produção. Para o Adobe Commerce na infraestrutura em nuvem, você pode criar ramificações com o comando da CLI magento-cloud environment:branch <branch-name>.

Reverter um patch personalizado

Para reverter ou desinstalar um patch personalizado aplicado anteriormente:

  1. Exclua o arquivo de patch do diretório /m2-hotfixes.

  2. Adicionar, confirmar e enviar alterações de código.

    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
    Teste em um ambiente de pré-produção. Para o Adobe Commerce na infraestrutura em nuvem, você pode criar ramificações com o comando da CLI magento-cloud environment:branch <branch-name>.

Aplicar patches a um projeto que não esteja na nuvem

Use a Ferramenta de correções de qualidade para projetos Magento Open Source e Adobe Commerce.

Reverter um patch em um ambiente local

Você pode reverter todos os patches aplicados anteriormente em um ambiente de desenvolvimento local usando a CLI do ece-patches.

Para reverter todos os patches aplicados:

php ./vendor/bin/ece-patches revert

Este comando reverte todos os patches na seguinte ordem:

  • Reverte todos os patches personalizados aplicados do diretório /m2-hotfixes.
  • Reverte todos os patches individuais aplicados.
  • Reverte todos os patches necessários aplicados.

Logs

A Ferramenta de Patches de Qualidade registra todas as operações no arquivo <Project_root>/var/log/patch.log.

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