执行升级

如果通过以下方式安装软件,则可以从命令行升级Adobe Commerce应用程序的​ 内部部署 ​部署:

  • 使用composer create-project命令下载编辑器中继包。
  • 正在安装压缩的归档文件。
NOTE

以下说明说明了如何使用编辑器包管理器进行升级。 Adobe Commerce 2.4.2引入了对Composer 2的支持。 如果您尝试从<2.4.1升级,则必须先使用编辑器1 升级到与编辑器2(例如,2.4.2)兼容的版本,然后再将 ​升级到编辑器2,以进行>2.4.2升级。 此外,您必须运行支持的PHP版本

WARNING
升级Adobe Commerce的过程已更改。 您必须安装magento/composer-root-update-plugin包的新版本(请参阅先决条件)。 此外,用于升级的命令已从composer require magento/<package_name>更改为composer require-commerce magento/<package_name>

开始之前

在开始升级过程之前,必须完成升级先决条件以准备环境。

管理包

NOTE
请参阅本节末尾的示例,以获取指定不同版本级别的帮助。 例如,高质量的修补程序和安全修补程序。 如果您在编辑器中找不到这些包,请联系Adobe Commerce支持。
  1. 切换到维护模式以防止在升级过程中访问存储区。

    code language-bash
    bin/magento maintenance:enable
    

    有关其他选项,请参阅启用或禁用维护模式。 您可以选择创建自定义维护模式页面

  2. 在异步进程(如消息队列使用者)运行时启动升级过程可能会导致数据损坏。 要防止数据损坏,请禁用所有cron作业。

    云基础架构上的​ Adobe Commerce:

    code language-bash
    ./vendor/bin/ece-tools cron:disable
    

    Magento Open Source:

    code language-bash
    bin/magento cron:remove
    
  3. 手动启动所有消息队列使用者,以确保使用所有消息。

    code language-bash
    bin/magento cron:run --group=consumers
    

    等待cron作业完成。 您可以使用进程查看器或多次运行ps aux | grep 'bin/magento queue'命令来监视作业的状态,直到所有进程都完成为止。

  4. 创建composer.json文件的备份。

    code language-bash
    cp composer.json composer.json.bak
    
  5. 根据您的需求添加或删除特定包。

    例如,如果您要从Magento Open Source升级到Adobe Commerce,请删除Magento Open Source包。

    code language-bash
    composer remove magento/product-community-edition --no-update
    

    您还可以升级示例数据。

    code language-bash
    composer require <sample data module-1>:<version> ... <sample data module-n>:<version> --no-update
    
    • Adobe Commerce:

      code language-bash
      composer require magento/module-bundle-sample-data:100.4.* magento/module-widget-sample-data:100.4.* magento/module-theme-sample-data:100.4.* magento/module-catalog-sample-data:100.4.* magento/module-customer-sample-data:100.4.* magento/module-cms-sample-data:100.4.*  magento/module-catalog-rule-sample-data:100.4.* magento/module-sales-rule-sample-data:100.4.* magento/module-review-sample-data:100.4.* magento/module-tax-sample-data:100.4.* magento/module-sales-sample-data:100.4.* magento/module-grouped-product-sample-data:100.4.* magento/module-downloadable-sample-data:100.4.* magento/module-msrp-sample-data:100.4.* magento/module-configurable-sample-data:100.4.* magento/module-product-links-sample-data:100.4.* magento/module-wishlist-sample-data:100.4.* magento/module-swatches-sample-data:100.4.* magento/sample-data-media:100.4.* magento/module-offline-shipping-sample-data:100.4.* magento/module-gift-card-sample-data:100.4.* magento/module-customer-balance-sample-data:100.4.* magento/module-target-rule-sample-data:100.4.* magento/module-gift-registry-sample-data:100.4.* magento/module-multiple-wishlist-sample-data:100.4.* --no-update
      
    • Magento Open Source:

      code language-bash
      composer require magento/module-bundle-sample-data:100.4.* magento/module-widget-sample-data:100.4.* magento/module-theme-sample-data:100.4.* magento/module-catalog-sample-data:100.4.* magento/module-customer-sample-data:100.4.* magento/module-cms-sample-data:100.4.*  magento/module-catalog-rule-sample-data:100.4.* magento/module-sales-rule-sample-data:100.4.* magento/module-review-sample-data:100.4.* magento/module-tax-sample-data:100.4.* magento/module-sales-sample-data:100.4.* magento/module-grouped-product-sample-data:100.4.* magento/module-downloadable-sample-data:100.4.* magento/module-msrp-sample-data:100.4.* magento/module-configurable-sample-data:100.4.* magento/module-product-links-sample-data:100.4.* magento/module-wishlist-sample-data:100.4.* magento/module-swatches-sample-data:100.4.* magento/sample-data-media:100.4.* magento/module-offline-shipping-sample-data:100.4.* --no-update
      
  6. 使用以下composer require-commerce命令语法升级实例:

    code language-bash
    composer require-commerce magento/<product> <version> --no-update [--interactive-root-conflicts] [--force-root-updates] [--help]
    

    命令选项包括:

    • <product> — (必需)要升级的包。 对于内部部署,此值必须为product-community-editionproduct-enterprise-edition

    • <version> — (必需)要升级到的Adobe Commerce版本。 例如,2.4.3

    • --no-update — (必需)禁用依赖项的自动更新。

    • --interactive-root-conflicts — (可选)允许您以交互方式查看和更新以前版本的任何过期值,或与要升级到的版本不匹配的自定义值。

    • --force-root-updates — (可选)使用预期的Commerce值覆盖所有冲突的自定义值。

    • --help — (可选)提供有关插件的使用情况详细信息。

    如果未指定--interactive-root-conflicts--force-root-updates,该命令将保留冲突的现有值并显示一条警告消息。 要了解有关该插件的更多信息,请参阅插件使用自述文件

  7. 更新依赖关系。

    code language-bash
    composer update
    

示例 — 列出可用版本

要查看可用2.4.x版本的完整列表,请执行以下操作:

Magento Open Source

composer show magento/product-community-edition 2.4.* --available | grep -m 1 versions

Adobe Commerce

composer show magento/product-enterprise-edition 2.4.* --available | grep -m 1 versions

示例 — 质量修补程序

质量修补程序主要包含功能性​ ​安全修补程序。 但是,它们有时可以包含向后兼容的新功能。 使用Composer下载质量修补程序。

Adobe Commerce

composer require-commerce magento/product-enterprise-edition 2.4.6 --no-update

Magento Open Source

composer require-commerce magento/product-community-edition 2.4.6 --no-update

示例 — 安全修补程序

安全修补程序仅包含安全修补程序。 它们旨在使升级过程更快、更轻松。 安全修补程序使用Composer命名约定2.4.x-px

Adobe Commerce

composer require-commerce magento/product-enterprise-edition 2.4.6-p3 --no-update

Magento Open Source

composer require-commerce magento/product-community-edition 2.4.6-p3 --no-update

更新元数据

  1. 根据需要更新composer.json文件中的"name""version""description"字段。

    note note
    NOTE
    更新composer.json文件中的元数据完全是表面性的,无法正常使用。
  2. 应用更新。

    code language-bash
    composer update
    
  3. 清除var/generated/子目录:

    code language-bash
    rm -rf var/cache/*
    
    code language-bash
    rm -rf var/page_cache/*
    
    code language-bash
    rm -rf generated/code/*
    
    note note
    NOTE
    如果您使用文件系统以外的缓存存储,如Redis或Memcached,则也必须手动清除其中的缓存。
  4. 更新数据库架构和数据。

    code language-bash
    bin/magento setup:upgrade
    
  5. 禁用维护模式。

    code language-bash
    bin/magento maintenance:disable
    
  6. (可选) ​重新启动清漆。

    如果将Varnish用于页面缓存,请重新启动它:

    code language-bash
    service varnish restart
    

检查您的工作

要检查升级是否成功,请在Web浏览器中打开店面URL。 如果升级不成功,您的店面将无法正确加载。

如果应用程序失败并出现We're sorry, an error has occurred while generating this email.错误:

  1. 文件系统所有权和权限重置为具有root权限的用户。

  2. 清除以下目录:

    • var/cache/
    • var/page_cache/
    • generated/code/
  3. 再次在Web浏览器中查看您的店面。

recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea