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