在雲端基礎結構上重設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命令失敗並出現錯誤,而且無法完成,我們可以使用以下步驟手動清除DB:

  1. SSH至您的環境
  2. 連線到MySQL DB: 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

重設DB後,進行 git 推送到環境以觸發重新部署,並將Adobe Commerce安裝到新建立的DB。 或執行重新部署命令

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