Upgrade Magento
You can upgrade your Magento application from the command line if you installed the software by:
- Downloading the metapackage using
composer create-project
. - Installing the compressed archive.
Do not use this method to upgrade if you cloned the Magento 2 GitHub repository. Instead, see Update the Magento application for upgrade instructions.
Before you begin
Complete the following prerequisites to prepare your environment before starting the upgrade process:
- Determine whether your current catalog search engine is supported-Avoid significant upgrade errors by ensuring your search engine complies with 2.4 requirements. See Check the catalog search engine for more details.
- Complete the Update and upgrade checklist—To avoid possible errors during installation or upgrading, complete the Update and upgrade checklist.
- Set the
pub/
directory root—See Modify docroot to improve security for more details. - Check PHP and environment settings—Verify that your PHP and other environment settings are compatible with the system requirements.
-
Switch to maintenance mode—To prevent access to your store while it’s being upgraded, switch your store to maintenance mode:
1
bin/magento maintenance:enable
See Enable or disable maintenance mode for additional options.
Optionally, you can create a custom maintenance mode page.
-
Install the Composer update plugin—The
magento/composer-root-update-plugin
Composer plugin resolves changes that need to be made to the root projectcomposer.json
file before updating to a new Magento product requirement.The plugin partially automates the manual upgrade by identifying and helping you resolve dependency conflicts instead of requiring you to identify and fix them them manually.
To install the plugin:
1
composer require magento/composer-root-update-plugin=~1.0 --no-update
Update the dependencies:
1
composer update
Manage packages
See the examples at the end of this section for help specifying different release levels. For example, minor release, quality patch, and security patch. Magento Commerce customers can access patches two weeks before the General Availability (GA) date. Pre-release packages are available through Composer only. You cannot find them on the Magento Portal or GitHub until GA. If you cannot find these packages in Composer, contact Magento Support.
-
Backup the
composer.json
file.1
cp composer.json composer.json.bak
-
Add or remove specific packages based on your needs. For example, if you are upgrading from Magento Open Source to Magento Commerce, remove the Magento Open Source package.
1
composer remove magento/product-community-edition --no-update
-
Indicate the Magento packages, both the edition (
community
orenterprise
) and the version (2.4.0
), that you want to upgrade to.The first time you upgrade using the plugin, you can interactively view and update any out-of-date values that may be remaining from previous versions. To enable this, use the
--interactive-magento-conflicts
option on thecomposer require
commands.Use
composer require --help
to learn more about available options. To learn more about usage of the plugin, refer to the Plugin Usage.Magento Open Source:
1
composer require magento/product-community-edition=2.4.0 --no-update
Magento Commerce:
1
composer require magento/product-enterprise-edition=2.4.0 --no-update
To see the full list of available 2.4 versions:
Magento Open Source:
1
composer show magento/product-community-edition 2.4.* --all | grep -m 1 versions
Magento Commerce:
1
composer show magento/product-enterprise-edition 2.4.* --all | grep -m 1 versions
Example - Minor release
Minor releases contain new features, quality fixes, and security fixes. Use Composer to specify a minor release. For example, to specify the Magento Commerce 2.4.0 metapackage:
1
composer require magento/product-community-edition=2.4.0 --no-update
Example - Quality patch
Quality patches primarily contain functional and security fixes. However, they can also sometimes contain new, backward-compatible features. Use Composer to download a quality patch. For example, to specify the Magento Commerce 2.3.3 metapackage:
1
composer require magento/product-community-edition=2.3.3 --no-update
Example - Security patch
Security patches contain security fixes only. They are designed to make the upgrade process faster and easier.
Security patches use the Composer naming convention 2.3.3-px
. Use Composer to specify a patch. For example, to download the Magento Open Source 2.3.3-p1 metapackage:
1
composer require magento/product-community-edition=2.3.3-p1 --no-update
Update metadata
-
Update the
"name"
,"version"
, and"description"
fields in thecomposer.json
file as needed.Updating the metadata in
composer.json
file is entirely superficial, not functional. -
Apply updates.
1
composer update
-
Clean the Magento cache.
1
bin/magento cache:clean
Clean up
Manually clear caches and generated content.
-
Clear the
var/
andgenerated/
subdirectories:1
rm -rf var/cache/*
1
rm -rf var/page_cache/*
1
rm -rf generated/code/*
If you use a cache storage other than the filesystem, such as Redis or Memcached, you must manually clear the cache there too.
-
Update the database schema and data.
1
bin/magento setup:upgrade
-
Disable maintenance mode.
1
bin/magento maintenance:disable
-
(Optional) Restart Varnish.
If you use Varnish for page caching, restart it:
1
service varnish restart
Check your work
Open your storefront URL in a web browser to check whether the upgrade was successful. If your upgrade was unsuccessful, your storefront will not load properly.
If the application fails with a We're sorry, an error has occurred while generating this email.
error:
- Reset file system ownership and permissions as a user with
root
privileges. - Clear the following directories:
var/cache/
var/page_cache/
generated/code/
- Check your storefront in your web browser again.