在云基础架构上重置Adobe Commerce上的环境

本文显示了在Adobe Commerce上回滚云基础架构上环境的各种方案。

选择最适合您的具体情况:

场景1:计划活动

在计划的部署或升级中,最简单且建议使用的Rollback是让商家在准备过程中执行以下操作:

NOTE
始终先在​ Staging Environment ​中测试这些步骤!

升级/部署活动前5天

  1. 检查当前数据库的大小。
  2. 检查/data/exports上是否有足够的磁盘空间来容纳Database Dump。 如果磁盘空间不足,请删除不需要的数据,或者创建支持案例并请求扩展磁盘。

更改日期

  1. 将网站放入Maintenance Mode。

    详细了解用户指南中的启用或禁用Maintenance Mode,以及升级指南中用于升级🔗的Maintenance Mode选项。
  2. 获取本地Database Dump

如果需要Rollback

  1. 如果应用程序(如MariaDB)已作为此计划活动的一部分升级,请首先将该应用程序重新安装到以前的版本。
  2. Rollback使用本地Database Dump的数据库,并将其导入回MariaDB。
  3. 通过Git将代码Rollback到以前的工作版本。

对于升级/计划活动rollbacks/restores,建议不要使用Snapshots,因为与本地Database Dump相比,检索数据需要更长的时间,如上面​ 步骤2中所示,如果需要Rollback ​部分。

Snapshots不保存在节点/服务器上,而是保存在单独的存储块中,由于该数据必须通过网络从块存储传输到新磁盘,因此该过程需要时间。 然后,将该新磁盘装载到节点上,准备检索/导入到连接到节点/服务器的原始磁盘上。

将此与导入本地Database Dump进行比较时,节点/服务器上已可检索数据,因此会节省大量时间,因为只需要使用Database Import。

场景2:恢复快照

阅读:我们的开发人员文档中的在Adobe Commerce上还原云基础架构上的快照

NOTE
在访问云基础架构帐户上的Adobe Commerce之后以及在应用重大更改之前,创建快照必须是我们的第一步。 这是最佳实践,强烈推荐。

阅读:在我们的开发人员文档中创建快照

场景3:无快照,构建稳定(可用SSH连接)

此部分说明如何在尚未创建快照但可以通过SSH访问环境时重置环境。

步骤如下:

  1. 禁用配置管理。
  2. 卸载Adobe Commerce软件。
  3. 重置git分支。

执行这些步骤后:

  • Adobe Commerce安装将返回到其Vanilla状态(数据库已恢复;部署配置已删除;已清除var下的目录)。
  • 您的git分支在过去将被重置为所需的状态。

请阅读下面的详细步骤。

步骤0(先决条件):删除config.php以禁用配置管理

我们需要禁用配置管理,以便它不会在部署期间自动应用以前的配置设置。

要禁用配置管理,请确保您的/app/etc/目录不包含config.php文件。

要删除配置文件,请执行以下步骤:

  1. SSH到您的环境
  2. 删除配置文件: rm app/etc/config.php

阅读有关配置管理的更多信息:

步骤1:使用setup:uninstall命令卸载Adobe Commerce软件

卸载Adobe Commerce软件将删除并还原数据库,删除部署配置,并清除var下的目录。

阅读:在开发人员文档中卸载Adobe Commerce软件

要卸载Adobe Commerce软件,请执行以下步骤:

  1. SSH到您的环境
  2. 执行setup:uninstallbin/magento setup:uninstall
  3. 确认卸载。

将显示以下消息以确认卸载成功:

[SUCCESS]: Magento uninstallation complete.

这意味着我们已将Adobe Commerce安装(包括DB)恢复到其正版(Vanilla)状态。

步骤2:重置git分支

通过git重置,我们将代码还原到过去所需的状态。

  1. 将环境克隆到本地开发环境。 您可以在Cloud Console中复制命令: copy_git_clone.png
  2. 访问提交历史记录。 使用--reverse以相反顺序显示历史记录,以便更加方便: git log --reverse
  3. 选择已完成的提交哈希。 要将代码重置为其真实状态(Vanilla),请查找创建分支(环境)的第一次提交。
    在Git控制台中选择承诺哈希
  4. 应用硬git重置: git reset --h <commit_hash>
  5. 将更改推送到服务器: git push --force <origin> <branch>

执行这些步骤后,将重置git分支并清除整个git更改日志。 最后git个推送将触发重新部署,以应用所有更改并重新安装Adobe Commerce。

场景4:没有快照;生成已中断(没有SSH连接)

本节说明如何在环境处于关键状态时重置环境:部署过程无法成功构建工作应用程序,从而导致SSH连接不可用。

在这种情况下,必须首先使用git重置来恢复Adobe Commerce应用程序的工作状态,然后卸载Adobe Commerce软件(要删除并恢复数据库,删除部署配置等)。 该场景包含与场景3相同的步骤,但步骤顺序不同,并且还有一个额外的步骤 — 强制重新部署。 步骤如下:

执行这些步骤后,您的结果将与场景3中的结果相同。

步骤4:强制重新部署

进行提交(这可能是空提交,但我们不建议这样做)并将它推送到服务器以触发重新部署:

git commit --allow-empty -m "<message>" && git push <origin> <branch>

如果安装:卸载失败,请手动重置数据库

如果执行setup:uninstall命令失败并出现错误,且无法完成,则可以使用以下步骤手动清除数据库:

  1. SSH到您的环境
  2. 连接到MySQL数据库: mysql -h database.internal (对于Pro环境,请参阅: 设置MySQL服务)。
  3. 删除main数据库: drop database main;
  4. 创建空的main数据库: create database main;
  5. 删除以下配置文件: config.phpconfig.php.bak,env.phpenv.php.bak

重置数据库后,向环境推送 git 以触发重新部署并将Adobe Commerce安装到新创建的数据库中。 或运行重新部署命令

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a