Sitecore MVP Nick Allen walks you through all of the necessary steps for upgrading from version 7.1 to the new release, Sitecore 7.2.
We've looks at what the new release of Sitecore 7.2 means for related item publishing and also the performance benchmarks that will be required for its use, but what about the actual process of moving from version 7.1 to 7.2?
Today we'll look at what's involved in updating, and include a timeline that will give you a rough estimate of what you will be looking at if you decide to make the switch. In this real-world example, I upgraded from the latest version of 7.1, revision 140130 in a fully content ready production instance.
Step 1 – Getting prepared
When upgrading Sitecore, we always recommend to backup your existing Sitecore solution and databases.
Time taken for step 1: 10 minutes, Total time: 10 minutes
For this upgrade, two files need to be downloaded: an upgrade package for the Sitecore update installation wizard and the Sitecore 7.2 update package.
Time taken for step 1: 5 minutes, Total time: 15 minutes
Note: If you are running Solr, you will also need to download an upgrade to the Solr provider. The scope of this article does not cover upgrading Solr.
Multivariate Tests Warning!
The instance of Sitecore I performed the upgrade on was not running any multivariate tests. Because of a new feature that allows multivariate tests to be defined per language, you must first stop all of your active tests and select winners. If you do not, the data on which tests were most successful will be lost.
Step 2 – Install the update installation wizard
This is a straightforward package installation using Sitecore’s installation wizard. When prompted, I chose overwrite and apply to all.
Time taken for step 2: 2 minutes, Total time: 17 minutes
Step 3 – Install the Sitecore 7.2 update package
This step required a little more thought. After uploading the 7.2 update package into the update installation wizard, I needed to analyze the package using Sitecore's Analyze tool to check for potential issues.
To do so, I sorted the analysis results by database. My core database had no customizations so I skipped over the warnings there. Next was the file system, and then the Sitecore DLLS, which I was also able to safely skip over as we didn't alter either of those. I did, however, need to check that any custom libraries that reference updated libraries would still be working with the new versions.
Following changes to the bin folder, I made a number of changes to files related to SPEAK, Sitecore's admin page and the Sitecore shell. Since again, we don't customize these, I was able to get through them with ease. I did get a few warnings, but they were all from the master database, and were more often than not notifications that I was overriding the existing language versions for obsolete rule definitions. Nothing to worry about there!
Now that I was satisfied that the installation would be successful, I went ahead and hit go! The installation completed without error. The only thing (and this might be something to do with the broswer I was used, Google Chrome) is after the final item was installed the browser "hung," meaning that I couldn't proceed to the final step, which provides an installation result summary.
Time taken for step 3:25 minutes, Total time: 42 minutes
Unlock the power of the xDB
A look at a day in the life of a Sitecore marketer
Get the whitepaper
Step 4 – Update Configuration Files
Updating your configuration files is standard practice with every Sitecore upgrade. Entries in the configuration files are changed, added and removed so we need to update them accordingly using Sitecore's provided guidelines. Depending on what version you are upgrading from, and to, the number of changes required will vary.
This upgrade has a number of changes and spans not only the web.config, but additional config files as well. For example my instance required 11 addition config files, as it was taking advantage of the Lucene search provider. At nonlinear we follow Sitecore best practices of putting all configuration customizations into include files. This saved me tons of time, as I could essentially just bring the clean updated configuration files over to the solution without worrying about deleting customizations. I did have to update my custom Lucene configuration file with the changes to the default configuration file as they are not inherited.
Time taken in step 4: 5 minutes, Total time: 47 minutes
Step 5 – Global.asax
Sitecore has removed its customizations to the global.asax into a base class making it easier for us to maintain our own customizations (which I have in this instance), so a small manual code tweak is required to remove the Sitecore customizations and inherit from the base class.
Time taken in step 5: 2 minutes, Total time: 49 minutes
Step 6 – Analytics robot detection
The logic for detecting robots has been upgraded in 7.2. To enable this feature we must copy an additional include file into our include folder.
Time taken in step 6: 1 minute, Total time: 50 minutes
Step 7 – Clean up
At this point, you are done with the installation and need to perform some clean up tasks such as clearing your browser cache and rebuilding indexes. This is also the time when you'll discover breaking changes for your customizations, as it will be the first time you'll be firing up Sitecore after the installation.
Step 8 – Breaking Change #1
Discovered trying to rebuild the indexes
We have a custom Lucene index configuraton which references the analyzer configuration from the default Lucene index configuration. The reference to the default analyzer pointed to
But in 7.2 it has moved to:
Time taken in step 8: 10 minutes, Total time: 60 minutes
Step 9 – Breaking Change #2
You can no longer create a new instance of a Sitecore database .e.g new Database(“master”)
Time taken in step 9: 2 minutes, Total time: 62 minutes
Step 10 – Breaking Change #3
Discovered trying to rebuild the indexes
“Could not create instance of type: Sitecore.ContentSearch.LuceneProvider.LuceneIndex. No matching constructor was found.”
This one took a while to debug and figure out what was happening. Essentially what it came down to is that our custom index configuration was using the type:
And needed to be changed to:
To enable the use of our custom configuration in the past, we had to add configuration nodes to the default core, master and web indexes. Sitecore now does this by default so these could be removed.
Time taken in step 10: 35 minutes, Total time: 97 minutes
The total upgrade time was just under two hours, with three minor breaking changes to our customizations. This scenario would become more complex and take more time if dealing with multiple instances, Solr and checking Sitecore modules for compatibility. It is always also recommended to perform full regression testing of a solution after an upgrade.
Have you had a chance to upgrade your Sitecore 7.1 version to 7.2? Any other issues you've encountered?