How do I upgrade Magento 2 to the latest version safely?
To upgrade Magento 2 to the latest version (2.4.9) safely, update the server stack before you touch the code. Then rehearse the whole upgrade on a staging copy of production. Magento 2.4.9 drops PHP 8.2 and MySQL 8.0, so many servers need work first. The other blocker to check early is any extension with no 2.4.9 release yet.
Quick answer
The latest Magento 2 release is 2.4.9, generally available since May 12, 2026. To upgrade safely, move your server to Adobe’s tested stack first. That means PHP 8.5, MySQL 8.4 or MariaDB 12.3, OpenSearch 3 and Composer 2.10. Next, confirm every extension supports 2.4.9 and run the Composer upgrade on a staging copy. Go live only after test orders pass with every payment method you offer. Keep a database backup ready to restore.
Magento 2 upgrade risks to check first
- Don’t let your host move production to PHP 8.5 ahead of the code. Adobe doesn’t list PHP 8.5 for 2.4.8 or earlier.
- Rolling back after
setup:upgrademeans restoring the database as well, because the command changes the schema. Restoring code alone will leave the store broken. - Coming from a release before 2.4.1? Adobe’s upgrade guide says to reach a Composer 2 compatible version, such as 2.4.2, first. Make that hop with Composer 1.
- Not ready for 2.4.9 yet? On the 2.4.8 line, 2.4.8-p5 keeps security fixes current while you plan.
How to upgrade Magento 2 to 2.4.9, step by step
1. Audit your current Magento 2 version and extensions
Run bin/magento --version, then composer show --direct to list only the packages you installed. Add any custom modules in app/code. Note your PHP, database, search engine and cache versions too. This list becomes your upgrade checklist.
2. Meet the Magento 2.4.9 system requirements
Magento 2.4.9 reached general availability on May 12, 2026, per the 2.4.9 release notes. Adobe only supports upgrading Magento 2 to the latest version on the stacks listed in its official system requirements. For on-premises installs, Adobe’s requirements table (updated September 2026) lists:
| Component | Tested version for 2.4.9 |
|---|---|
| PHP | 8.5 |
| Database | MySQL 8.4 or MariaDB 12.3 |
| Search | OpenSearch 3 |
| Composer | 2.10 |
| Cache | Valkey 9 |
| Full page cache | Varnish 8 |
| Message queue | RabbitMQ 4.3 or ActiveMQ Artemis 2 |
PHP 8.2 and MySQL 8.0 are no longer supported. Move to the 2.4.9 stack on staging first, because a PHP jump alone can break custom code.
3. Check extension compatibility with Magento 2.4.9
- Confirm each vendor has released a 2.4.9 compatible version, and list the ones that have not.
- Custom modules need their own review. Check them for PHP 8.5 deprecations and for plugins or preferences on core classes.
- Hyvä and Luma child themes both need a click-through on staging: category, product, cart and checkout pages.
- Remove modules you no longer use instead of upgrading them.
4. Clone production to staging and back everything up
Copy the production database, codebase and media to a staging server running the 2.4.9 tested stack. Take a full database dump and keep copies of composer.json and composer.lock. This is your rollback point.
5. Run the Composer upgrade on staging
The upgrade itself is a short run of Composer and CLI commands, taken from Adobe’s upgrade guide. For Magento Open Source:
bin/magento maintenance:enable
cp composer.json composer.json.bak
composer require-commerce magento/product-community-edition 2.4.9 --no-update
composer update
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento indexer:reindex
bin/magento cache:flush
bin/magento maintenance:disable
Adobe Commerce installs use magento/product-enterprise-edition instead, and Adobe Commerce on Cloud projects follow a separate path through ece-tools.
6. Test checkout and integrations on staging
A clean composer update only proves the dependencies resolve. On staging, test at least:
- Checkout: guest and logged-in orders with every payment method you offer.
- Shipping and tax: live rates for your main regions.
- Search and catalog: results, layered navigation and a full reindex on OpenSearch 3.
- Integrations: ERP, PIM, feeds and any REST or GraphQL clients.
- Cron and queues: confirm the queue consumers start and order confirmation emails actually send.
The 2.4.9 release notes include REST API behavior changes, such as how store-scope product updates inherit media gallery data. Test any integration that pushes product data.
7. Deploy the Magento 2 upgrade with a rollback plan
- Pick a low-traffic window.
- Make a fresh database dump right before you start. Your earlier backup misses orders placed since you cloned staging.
- Run the same
composer require-commerceandbin/magentocommands you used on staging. - Place a test order with a live payment method, then refund it.
If anything fails, restore the database and the previous composer.lock, then debug on staging.
Skipping the staging rehearsal moves your testing onto the live checkout. Need help upgrading Magento 2 to the latest version on a heavily customized store? Our Magento development team can scope it with you. See our Magento case studies for past platform work.
Related Answers
Still need help?
Talk to our Magento experts
Stuck on a dependency conflict, or unsure your extensions will survive 2.4.9? We can review your stack and plan the upgrade with you.