HOW TO UPGRADE MAGENTO 2.X TO 2.3

In my latest article about the 2.3.0 release, I have explained how significant this Magento upgrade is. It consists of huge improvements over the current version and comes with many fixes and features. I would say, this is one of the biggest upgrades for Magento 2 this year, 2018.

I would highly suggest every store owner upgrade their Magento v2.x to the latest 2.3.0 to avail all these security enhancements, features and functionalities, and fixtures in their stores.

This tutorial will explain how to upgrade your current v2.x to this latest v2.3.0.

Important Note: Before you run any further steps on upgrading your current store, I would suggest you do the following:

  1. Do not try this upgrade on the production environment directly until you are 100% sure it is working in your development environment.
  2. Take a complete backup of your production file system and database.
  3. Make sure you are running php7.1 or higher.

Step 1: Put the site in maintenance:

#php bin/magento maintenance:enable

Step 2: Get the latest package through the composer

Run the following command

#composer require magento/product-community-edition=2.3.0 –no-update

Step 3: Now, ideally, it should allow you to run the below command. However, this will not work in cases when you are upgrading from 2.2.X to 2.3.0.

#composer update

This will give you a similar error to the one shown below:

This is because now Magneto 2.3 requires additional packages to run Magento’s newest version. So before going further, you need to set up the correct environment setting. Otherwise, you will meet these errors and not update the Magento version to the latest.

So before running #composer update, please specify these additional packages by running this command

#composer require –dev phpunit/phpunit:~6.2.0 friendsofphp/php-cs-fixer:~2.10.1 lusitanian/oauth:~0.8.10 pdepend/pdepend:2.5.2 sebastian/phpcpd:~3.0.0 squizlabs/php_codesniffer:3.2.2 –no-update

Also remove unused packages (this is optional but still good to remove any unused packages from the composer) through this command

#composer remove –dev sjparkinson/static-review fabpot/php-cs-fixer –no-update

Step 4: Still, you cannot go with the #composer update, as there are some changes in composer.json file which we need to amend. For this we need to include “Zend\\Mvc\\Controller\\”: “setup/src/Zend/Mvc/Controller/” in autoload psr-4 section. So, open composer.json and edit the “autoload”: “psr-4” section and include “Zend\\Mvc\\Controller\\”: “setup/src/Zend/Mvc/Controller/”

"autoload": {
 "psr-4": {
    "Magento\\Framework\\": "lib/internal/Magento/Framework/",
    "Magento\\Setup\\": "setup/src/Magento/Setup/",
    "Magento\\": "app/code/Magento/",
    "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
     },
………………… } 

Step 5:  Once done, you are ready to run the composer update command

#composer update

Now the upgrade process should begin.

Now, at this stage, if you encounter any error, that’s most likely because of your own configuration in the store. So make sure to fix them. 

Step 6: Clear caches and generated content

#rm -rf var
#rm -rf generated

Step 7: Once, that’s done, run the upgrade command

#bin/magento setup:upgrade
#php bin/magento cache:flush
#php bin/magento setup:static-content:deploy -f
#php bin/magento indexer:reindex
#php bin/magento setup:di:compile #redis-cli flushall
#php bin/magento maintenance:disable 

Done! Check your Magento admin panel and confirm that you have the latest version of the store. Or check your Magento version with the following command:

#php bin/magento –version

In case you encounter any errors or have any questions, please submit them through our website.

FAQ:

1. Which PHP version is required for Magento 2.3.0?

Ans: You need PHP 7.1.3+ or 7.2.x to run Magento 2.3.0.

2. Can we go directly for “Composer Update” without adding additional Packages?

Ans: No. You must specify additional packages and must update the composer.json file before using “Composer Update.” Without this, there will be errors in the console about requirements that need to be added.

3. Are there any changes while defining the package for Magneto 2.3.0?

Ans: Yes check

#composer require magento/product-community-edition=2.3.0 –no-update

while in the old one

#composer require magento/product-community-edition 2.2.x –no-update

4. What are the major changes of Magento 2.3.0?

Ans:

New composer packages – because there are so many new features.

Optional modules – use the replace composer trick to remove any new Magento 2.3 module that you don’t need.

MySQL search – Magento 2.3 marks the deprecation of MySQL as a search mechanism. ElasticSearch will be a replacement

Zend Framework – Magento 2.3 removes Zend Framework 1 dependencies.

GraphQL API is now available for Magento 2.3.0.

Declarative schema simplifies installation and upgrade procedures for Magento and extensions.BIZSPICE.com has a compelling service architectured by our Magento team to upgrade your store from any version to the latest Magento 2. Please visit our Upgrade Service for Magento 2 page and get more details about this service. Also, do let us know if we can be of any assistance to help you upgrade your Magento store.