Magento Commerce Cloud allows a service downgrade for any particular environment; the downgrade process is not as direct as upgrading, but it is still very convenient.
When downgrading a service, its version needs to be compatible with the Magento host version. The following table can be referenced for helping to determine the correct service version.
Service | Adobe Commerce 2.4.x | Adobe Commerce 2.3.5 ~2.3.9 |
elasticsearch | 7.7, 7.9 | 6.8, 7.5, 7.7, 7.9 |
mysql/mariadb | 10.2, 10.4 | 10.1 ~10.3 |
rabbitmq | 3.8 | 3.7, 3.8 |
redis | 5.x, 6.x | 5.x, 6.x |
The easiest way for downgrading a service is by renaming it or creating a new one in the magento/services.yaml file. For example:
Original service definition:
elasticsearch:
type: elasticsearch:7.7
disk: 1024
Updated service definition:
elasticsearch2:
type: elasticsearch:6.8
disk: 1024
After that, the services relationship must be updated in the .app.magento.yaml file. For example:
Original service relation:
relationships:
database: “mysql:mysql”
redis: “redis:redis”
elasticsearch: “elasticsearch:elasticsearch”
rabbitmq: “rabbitmq:rabbitmq”
Updated service relation:
relationships:
database: “mysql:mysql”
redis: “redis:redis”
elasticsearch: “elasticsearch2:elasticsearch”
rabbitmq: “rabbitmq:rabbitmq”
Commit the changes and push the changes for activating a redeploy:
git add –all
git commit -m “Downgraded elasticsearch service”
git push <remote> <branch>
After redeploying open a tunnel via Magento CLI:
mgc tunnel:open
mgc tunnel:info
And check the service version for confirming the upgrade:
elasticsearch2:
–
username: null
…
type: ‘elasticsearch:7.7’
…
After confirmation, the environment can be used as normal.