At some point you’re going to want to upgrade your Magento project from 2.0/2.1/2.2 to the latest 2.3.x release to take advantage of new functionality and many improvements. There are a few manual changes that get in the way of the standard composer update that you’re used to. Thankfully, to accommodate this obstacle a tool was included in the codebase to automate these changes for you.
Prep:
# Create a fresh Magento 2.3 project via composer (or clone the repo and switch to a 2.3 tag/branch, or grab the script by itself..)
composer create-project --repository=https://repo.magento.com/ magento/project-community-edition=2.3 m23base
# Change working directories to the upgrade tools directory in your new project
cd m23base/dev/tools/UpgradeScripts
Execute:
# Run the 2.3 upgrade assistant against the root of the Magento project you’re intending to upgrade
php -f pre_composer_update.php — –root=/path/to/magento-installation –repo=https://repo.magento.com/
Output:
– Updated composer.json
– Updated update/composer.lock
– Updated update/dev/tests
Change working directories to the root of the Magento project you’ve begun updating and complete the remaining steps.
cd /path/to/magento-installation
# Update Magento and all dependencies
composer update
# Clear the cache
rm -rf /var/cache/*
rm -rf /var/page_cache/*
# Remove any generated code
rm -rf /var/generation
rm -rf /generated/code/*
# Run Magento upgrade scripts
php bin/magento setup:upgrade
# Reindex after upgrade
php bin/magento i:rei
# Flush cache after reindex
php bin/magento c:f
Reading:
Documentation:
– https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html#upgrade-cli-script
Hello,
Thanks for this useful solution.
Well, is it possible to upgrade Magento 2 version directly by running the CLI command on the intended project rather than creating fresh Magento 2.3 project?
Regards,
Syed Muneeb Ul Hasan
Yes, you’ll just need to obtain the script and use it to update your existing project. https://raw.githubusercontent.com/magento/magento2/2.3.0/dev/tools/UpgradeScripts/pre_composer_update_2.3.php