Roll back environment without Cloud snapshot

This article shows two solutions to roll back an environment without having a snapshot of your environment on Adobe Commerce on cloud infrastructure.

Affected products and versions

Choose the most appropriate for your case:

Scenario 1: No snapshot, build stable (SSH connection available) scen2

This section shows how to roll back an environment when you have not created a snapshot but can access the environment via SSH.

The steps are:

  1. Disable Configuration Management.
  2. Uninstall the Adobe Commerce software.
  3. Reset the git branch.

After performing these steps:

  • your Adobe Commerce installation returns to its Vanilla state (database restored; deployment configuration removed; directories under var cleared)
  • your git branch is reset to the desired state in the past

Read the detailed steps below:

Step 0 (Prerequisite): Remove config.php to disable Configuration Management disable_config_management

We need to disable Configuration Management so that it does not automatically apply the previous configuration settings during deployment.

To disable Configuration Management, make sure that your /app/etc/ directory does not contain the config.php (for Adobe Commerce 2.4.x) or config.local.php (for Adobe Commerce 2.1.x) files.

To remove the configuration file, follow these steps:

  1. SSH to your environment.

  2. Remove the configuration file:

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

Learn more about Configuration Management by reviewing:

Step 1: Uninstall the Adobe Commerce software with setup:uninstall command setup-uninstall

Uninstalling the Adobe Commerce software drops and restores the database, removes the deployment configuration, and clears directories under var.

Review Uninstall the Adobe Commerce software in our developer documentation.

To uninstall the Adobe Commerce software, follow these steps:

  1. SSH to your environment.

  2. Execute setup:uninstall:

    code language-php
      php bin/magento setup:uninstall
    
  3. Confirm uninstall.

The following message displays to confirm a successful uninstallation:

[SUCCESS]: Magento uninstallation complete.

This means we have reverted our Adobe Commerce installation (including DB) to its authentic (Vanilla) state.

Step 2: Reset the git branch reset-git-branch

With git reset, we revert the code to the desired state in the past.

  1. Clone the environment to your local development environment. You may copy the command in the Cloud Console: copy_git_clone.png

  2. Access the commits history. Use --reverse to display history in reverse order for more convenience:

    code language-git
      git log --reverse
    
  3. Select the commit hash on which you’ve been good. To reset code to its authentic state (Vanilla), find the very first commit that created your branch (environment). Selecting a commit hash in git console

  4. Apply hard git reset:

    code language-git
      git reset --h <commit_hash>
    
  5. Push changes to server:

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

After performing these steps, our git branch gets reset and the entire git changelog is clear. The last git push triggers the redeploy to apply all changes and re-install Adobe Commerce.

Scenario 2: No snapshot; build broken (no SSH connection) scen3

This section shows how to roll back an environment when it is in a critical state: the deployment procedure cannot succeed in building a working application, thus making the SSH connection unavailable.

In this scenario, you must first restore the working state of your Adobe Commerce application using git reset, then uninstall the Adobe Commerce software (to drop and restore the database, remove the deployment configuration, etc.). The scenario involves the same steps as in Scenario 1, but the order of steps is different and there is an additional step – force redeploy. The steps are:

1. Reset the git branch.

2. Disable Configuration Management.

3. Uninstall the Adobe Commerce software.

4. Force redeploy.

After performing these steps, you will have the same results as in Scenario 1.

Step 4: Force redeploy

Make a commit (this might be an empty commit, although we do not recommend it) and push it to the server to trigger redeploy:

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

If setup:uninstall fails, reset database manually

If executing the setup:uninstall command fails with an error and cannot be completed, we may clear the DB manually with these steps:

  1. SSH to your environment.

  2. Connect to the MySQL DB:

    code language-sql
    mysql -h database.internal
    
  3. Drop the main DB:

    code language-sql
    drop database main;
    
  4. Create an empty main DB:

    code language-sql
    create database main;
    
  5. Delete the following configuration files: config.php, config.php .bak, env.php, and env.php.bak.

After resetting the DB, make a git push to the environment to trigger redeploy and install Adobe Commerce to a newly created DB. Or run the redeploy command.

In our developer documentation:

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