应用修补程序

适用于Commerce的云修补程序Quality Patches Tool,可为您安装的Adobe Commerce应用程序提供修补程序。

请参阅​ Commerce Operations Tools Guide ​中的可用修补程序,以查看已发布修补程序的完整列表。

这两个包都改进了所有Adobe Commerce版本与Cloud环境的集成,并支持快速交付关键、可选和自定义修补程序。 您可以使用这些软件包来应用、还原和查看有关Commerce可用的所有单个修补程序的一般信息。

TIP
您可以将Commerce的Quality Patches Tool和Cloud Patches用作Magento Open Source和Adobe Commerce项目的独立包。 我们建议将质量修补程序工具用于非云项目。

当您将更改部署到远程环境时,ece-tools包使用magento/magento-cloud-patchesmagento/quality-patches来检查挂起的修补程序并按以下顺序自动应用它们:

  1. 应用Commerce的Commerce修补程序包中包含的所有必需的Cloud修补程序。
  2. 应用Quality Patches Tool中包含的可选Commerce修补程序。
  3. 按修补程序名称的字母顺序应用/m2-hotfixes目录中的自定义修补程序。
NOTE
当您更新ece-tools包或Commerce包的Cloud修补程序时,会在下次部署项目时应用最新的必需修补程序,或者您可以使用ece-patches apply CLI命令立即部署它们并重新部署Cloud环境。 您不能在部署过程中跳过必需的修补程序

先决条件

TIP
在开始升级或修补过程之前,请从集成环境创建一个活动分支,并将新分支签出到您的本地工作站。 将分支专用于升级或修补过程有助于避免干扰正在进行的工作。

Quality Patches Tool依赖于Commerce和ece-tools包的云修补程序。 要应用最新的修补程序,您必须安装最新版本的ECE-Tools。 ECE-Tools的最低要求版本是2002.1.2。

查看可用的补丁程序和状态

要查看可用单个修补程序的列表,请执行以下操作:

php ./vendor/bin/ece-patches status

示例响应:

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

状态表包含以下类型的信息:

  • 类型

    • Optional - Quality Patches Tool和Cloud Patches包中的所有修补程序对于Adobe Commerce和Magento Open Source安装都是可选的。 对于云基础架构上的Adobe Commerce,所有修补程序都是可选的。
    • Required - Cloud客户需要Commerce软件包的Cloud修补程序中的所有修补程序。
    • Deprecated — 单个修补程序已标记为已弃用,如果您已应用它,我们建议恢复它。 还原已弃用的修补程序后,该修补程序将不再显示在状态表中。
    • Custom — “m2-hotfixes”目录中的所有修补程序。
  • 状态

    • Applied — 已应用修补程序。
    • Not applied — 尚未应用该修补程序。
    • N/A — 由于存在冲突,无法定义修补程序的状态。
  • 详细信息

    • Affected components — 受影响的模块列表。
    • Required patches — 所需的修补程序(依赖项)列表。
    • Recommended replacement — 建议用于替代已弃用修补程序的修补程序。

在本地环境中应用修补程序

您可以在本地环境中手动应用修补程序,并在部署之前对其进行测试。

要在本地开发环境中应用单个修补程序

  1. 将“QUALITY_PATCH”变量添加到.magento.env.yaml文件中,并在下面列出所需的修补程序。

    code language-yaml
    stage:
      build:
        QUALITY_PATCHES:
          - MCTEST-1002
          - MCTEST-1003
    
  2. 从项目根目录应用修补程序。

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

    ece-patches apply命令按以下顺序应用修补程序:

    • 所需的修补程序
    • 可选的单个修补程序
    • 来自/m2-hotfixes目录的自定义修补程序
  3. 清除缓存。

    code language-bash
    php ./bin/magento cache:clean
    
  4. 测试修补程序,对自定义修补程序进行任何必要的更改。

在远程环境中应用修补程序

WARNING
我们强烈建议先测试集成或暂存环境中的所有修补程序,然后再部署到生产环境。

要在远程环境中应用修补程序

  1. QUALITY_PATCHES变量添加到.magento.env.yaml文件中并在下面列出所需的修补程序。

    code language-yaml
    stage:
      build:
        QUALITY_PATCHES:
          - MCTEST-1002
          - MCTEST-1003
    
    note note
    NOTE
    升级到Adobe Commerce的新版本后,如果修补程序未包含在新版本中,则必须重新应用修补程序。
  2. 添加、提交和推送更新的.magento.env.yaml文件。

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

应用自定义修补程序

部署时,ECE-Tools应用所有Adobe修补程序以及添加到项目根目录/m2-hotfixes目录的任何自定义修补程序。

NOTE
所有修补程序文件名必须以.patch扩展名结尾。

要在云环境中应用和测试自定义修补程序

  1. 在项目根目录下,创建一个名为m2-hotfixes的目录(如果该目录不存在)

    code language-bash
    mkdir m2-hotfixes
    
  2. 将修补程序文件复制到/m2-hotfixes目录。

  3. 添加、提交和推送代码更改。

    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
    请确保在预生产环境中测试所有修补程序。 对于云基础架构上的Adobe Commerce,您可以使用magento-cloud environment:branch <branch-name> CLI命令创建分支。

还原自定义修补程序

要还原或卸载以前应用的自定义修补程序,请执行以下操作:

  1. /m2-hotfixes目录中删除修补程序文件。

  2. 添加、提交和推送代码更改。

    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
    确保在预生产环境中测试。 对于云基础架构上的Adobe Commerce,您可以使用magento-cloud environment:branch <branch-name> CLI命令创建分支。

将修补程序应用到非云项目

使用Quality Patches Tool进行Magento Open Source和Adobe Commerce项目。

还原本地环境中的修补程序

您可以使用ece-patches CLI还原本地开发环境中先前应用的所有修补程序。

还原所有应用的修补程序:

php ./vendor/bin/ece-patches revert

此命令按以下顺序还原所有修补程序:

  • 还原从/m2-hotfixes目录应用的所有自定义修补程序。
  • 还原所有应用的可选单个修补程序。
  • 还原所有应用的所需修补程序。

记录

质量修补程序工具将所有操作记录到<Project_root>/var/log/patch.log文件中。

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