復原沒有雲端快照的環境

本文說明兩種解決方案,可復原環境,而不會在雲端基礎結構上的Adobe Commerce上擁有環境的快照。

受影響的產品和版本

選擇最適合您的案例:

案例1:沒有快照、建置穩定(可用SSH連線) scen2

本節說明當您尚未建立快照,但可透過SSH存取環境時,如何復原環境。

步驟如下:

  1. 停用組態管理。
  2. 解除安裝Adobe Commerce軟體。
  3. 重設Git分支。

執行這些步驟後:

  • 您的Adobe Commerce安裝會回到其Vanilla狀態(資料庫已還原;部署設定已移除;目錄位於 var 已清除)
  • 您的Git分支會重設為過去所需的狀態

請閱讀以下詳細步驟:

步驟0 (先決條件):移除config.php以停用「組態管理」 disable_config_management

我們需要停用「組態管理」,以免在部署期間自動套用先前的組態設定。

若要停用「組態管理」,請確定 /app/etc/ 目錄不包含 config.php (適用於Adobe Commerce 2.4.x)或 config.local.php (適用於Adobe Commerce 2.1.x)檔案。

若要移除組態檔,請遵循下列步驟:

  1. SSH至您的環境.

  2. 移除設定檔:

    • 若為Adobe Commerce 2.4:
    code language-php
     rm app/etc/config.php
    
    • 若為Adobe Commerce 2.1:
    code language-php
      rm app/etc/config.local.php
    

檢閱以下內容,進一步瞭解組態管理:

步驟1:使用setup:uninstall命令解除安裝Adobe Commerce軟體 setup-uninstall

解除安裝Adobe Commerce軟體會捨棄並還原資料庫、移除部署設定,並清除下的目錄 var.

檢閱 解除安裝Adobe Commerce軟體 (位於我們的開發人員檔案中)。

若要解除安裝Adobe Commerce軟體,請遵循下列步驟:

  1. SSH至您的環境.

  2. 執行 setup:uninstall

    code language-php
      php bin/magento setup:uninstall
    
  3. 確認解除安裝。

系統會顯示下列訊息,確認解除安裝成功:

[SUCCESS]: Magento uninstallation complete.

這表示我們已將Adobe Commerce安裝(包括DB)還原為其正版(Vanilla)狀態。

步驟2:重設Git分支 reset-git-branch

透過Git重設,我們會將程式碼恢復到過去所需的狀態。

  1. 將環境複製到本機開發環境。 您可以在Cloud Console中複製命令: copy_git_clone.png

  2. 存取認可歷史記錄。 使用 --reverse 若要以相反順序顯示歷史記錄,以方便使用:

    code language-git
      git log --reverse
    
  3. 選取您擅長的認可雜湊。 若要將程式碼重設為真實狀態(Vanilla),請尋找建立分支(環境)的第一個認可。 在Git主控台中選取認可雜湊

  4. 套用硬Git重設:

    code language-git
      git reset --h <commit_hash>
    
  5. 將變更推送至伺服器:

    code language-git
      git push --force <origin> <branch>
    

執行這些步驟後,我們的Git分支會重設,並且整個Git變更記錄檔都會清除。 最後一個Git推送會觸發重新部署,以套用所有變更並重新安裝Adobe Commerce。

案例2:沒有快照;建置損毀(沒有SSH連線) scen3

本節說明如何在環境處於嚴重狀態時復原環境:建置程式無法成功建置運作中的應用程式,因此導致SSH連線無法使用。

在這種情況下,您必須先使用Git重設還原Adobe Commerce應用程式的工作狀態,然後解除安裝Adobe Commerce軟體(若要卸除並還原資料庫、移除部署設定等)。 此情境涉及與情境1相同的步驟,但步驟順序不同,並且有另一個步驟 — 強制重新部署。 步驟如下:

1.重設Git分支。

2. 停用組態管理。

3.解除安裝Adobe Commerce軟體。

4個期間;強制重新部署。

執行這些步驟後,您將會獲得與案例1相同的結果。

步驟4:強制重新部署

提交認可(這可能是空的認可,雖然我們不建議這麼做)並將其推送到伺服器以觸發重新部署:

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

如果安裝:解除安裝失敗,請手動重設資料庫

如果執行 setup:uninstall 命令因錯誤而失敗,且無法完成,我們可以使用以下步驟手動清除DB:

  1. SSH至您的環境.

  2. 連線至MySQL資料庫:

    code language-sql
    mysql -h database.internal
    
  3. 放下 main 資料庫:

    code language-sql
    drop database main;
    
  4. 建立空白 main 資料庫:

    code language-sql
    create database main;
    
  5. 刪除下列組態檔: config.phpconfig.php .bakenv.php、和 env.php.bak.

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

相關閱讀

在我們的開發人員檔案中:

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