Recently I was involved in upgrading a Sitecore 9.0.2 solution to the Sitecore 9.3 release.
Although the upgrade had its challenges, overall it went well during local and test environments. This article covers four key aspects of the upgrade.
- Visual Studio project updates
- Setting up Sitecore 9.3
- Sitecore databases
- Upgrading on Azure
1. Visual Studio project updates
For the development environment, I started by upgrading my solution. I upgraded all my projects to .Net framework 4.7.2, the latest TDS version, as well as upgrading the 3rd party dependencies being used. Following that, all Sitecore packages uninstalled for each project were reinstalled with the 9.3 version of Sitecore.
While updating the references, it seemed like a good opportunity to also update all other dependencies to the latest available versions on Nuget, where possible, and to consolidate all references. After this process, the solution was compiling without errors and all our tests were passing.
2. Setting up of Sitecore 9.3
Now that the custom code was upgraded and building without errors, the next step was to test this code on a clean, vanilla instance of Sitecore 9.3.
I started by installing this latest Sitecore version using the Sitecore Installation Assistant. The process went smoothly and some of the new features like the Identity Server were now visible. Following the installation, I configured my solution to deploy my code into this instance and serialised custom Sitecore items.
A few dependencies errors surfaced which were quickly resolved. I also needed to add a new variable to point at the new Identity Server, as well as adding a new configuration file for Email Experience Manager (EXM) settings.
Because the previous version of Sitecore had a publish:end event configuration for HTML Cache clearing, the publish:end configuration setting was removed because this behaviour is default after a publishing cycle in Sitecore 9.3. When the custom code was working with the clean vanilla instance, it was time to upgrade the Sitecore databases.
3. Sitecore databases
For the upgrade, Sitecore provided scripts to run against the databases, as well as adding some new ones. Although it ran smoothly, the second reporting script was throwing collation errors. A ticket was raised with Sitecore Support who promptly resolved the issue by providing another script.
The final process was to run the update package on Sitecore. During the update some configuration files were changed but the old ones were kept. To resolve these errors the code was redeployed.
Another challenge was resolving an error that surfaced because of a legacy Sitecore patch which changed the rendering of the Launchpad item in the Core database. This issue was resolved by reverting to the original settings.
4. Upgrading on Azure
With both local and other test environments upgraded, the Sitecore production instances on Azure, namely UAT and Production environments, then needed upgrading. Because all Sitecore 9.0 resource groups, configuration and databases were duplicated, nothing was lost. We had migrated our environments to the cloud in an earlier upgrade of Sitecore going fully Azure PaaS with geographically distributed cloud environments.
xConnect was configured accordingly. A new Identity Server resource group was created, with the relevant files being added to each. All databases were updated before running the update package.
Future Sitecore upgrades from 9.3 onward will be a lot easier due to the new Sitecore Update Centre that is part of the core installation from now on.
Our experienced Sitecore development team has upgraded Sitecore websites for numerous customers across a variety of sectors. If you’d like to know more about upgrading your Sitecore website then get in touch.