クラウドスナップショットを使用しない環境のロールバック

この記事では、クラウドインフラストラクチャー上のAdobe Commerceで環境のスナップショットを作成することなく、環境をロールバックする 2 つのソリューションについて説明します。

影響を受ける製品とバージョン

お客様の状況に最も適したものを選択してください。

シナリオ 1:スナップショットがなく、安定して構築(SSH 接続を使用可能) scen2

ここでは、スナップショットを作成していないが、SSH 経由で環境にアクセスできる場合に、環境をロールバックする方法について説明します。

手順は次のとおりです。

  1. 構成管理を無効にします。
  2. Adobe Commerce ソフトウェアをアンインストールします。
  3. Git ブランチをリセットします。

これらの手順を実行した後:

  • Adobe Commerceのインストールがバニラ状態に戻ります(データベースが復元されました。デプロイメント設定が削除されました。var 下のディレクトリがクリアされました)
  • git ブランチが過去に目的の状態にリセットされます

以下の詳細な手順を参照してください。

手順 0 (前提条件):config.php を削除して、構成管理を無効にします disable_config_management

デプロイメント中に以前の設定が自動的に適用されないように、設定管理を無効にする必要があります。

Configuration 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
    

次の項目を確認して、設定管理の詳細を学びます。

手順 1uninstall コマンドを使用して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. Force redeploy.(強制再デプロイ)

これらの手順を実行すると、シナリオ 1 と同じ結果が得られます。

手順 4:再デプロイの強制

コミットを作成し(これは空のコミットである可能性がありますが、お勧めしません)、トリガーにプッシュして再デプロイします。

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

setup:uninstall が失敗した場合は、データベースを手動でリセットします

setup:uninstall コマンドの実行がエラーで失敗し、完了しない場合は、次の手順で DB を手動でクリアできます。

  1. 環境に SSH で接続します

  2. MySQL DB に接続します。

    code language-sql
    mysql -h database.internal
    
  3. main DB をドロップします。

    code language-sql
    drop database main;
    
  4. 空の main DB を作成します。

    code language-sql
    create database main;
    
  5. 設定ファイル config.phpconfig.php .bakenv.phpenv.php.bak を削除します。

DB をリセットした後、トリガーに Git プッシュを送信して環境を再デプロイ、新しく作成した DB にAdobe Commerceをインストールします。 または redeploy コマンドを実行します

関連資料

開発者向けドキュメントでは、

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