I am currently working on a project that is upgrading a Sitecore solution to Sitecore 8.2 Initial Release. Since I have started on this project, Sitecore 8.2 Update 1 has been released.
There are plenty of posts out there detailing the steps required to upgrade a Sitecore solution. This post is not another one. This post is detailing some of the issues that I experienced with the upgrade from Sitecore 8,0 Initial Release to Sitecore 8.1 Initial Release, which gave me a few more grey hairs.
Everything that I have done is exactly as described in the Sitecore 8.1 Initial Release Upgrade Guide
The documentation specifies that you should Analyze the Sitecore 8.1 Initial Release upgrade package before actually installing the package. From now, when I say Sitecore 8.1, I mean Sitecore 8.1 Initial Release. In all the previous upgrades that I have performed, I have received warnings, info and collision messages. However with analyzing the Sitecore 8.1 upgrade package, I actually received errors.
Every error was “Template to be deleted is already in use” And it was a mixture of items within the Master and Core databases.
In Master
- Template ‘[s]/sitecore/templates/System/Modules/Experience Explorer/Accordion[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/templates/System/Modules/Experience Explorer/Control[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/templates/System/Modules/Experience Explorer/Map Provider[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/templates/System/Modules/Experience Explorer/Map Settings[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/templates/System/Modules/Experience Explorer/Presets[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/templates/System/Modules/Experience Explorer/Preset[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/templates/System/Modules/Experience Explorer/Preset Persona[/s]’ cannot be deleted.
In Core
- Template ‘[s]/sitecore/client/Business Component Library/Templates/Pages/Speak-DashboardPage[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Business Component Library/Templates/Pages/Speak-DialogPage[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Business Component Library/Templates/Pages/Speak-ListPage[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Business Component Library/Templates/Pages/Speak-SearchResultsPage[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Business Component Library/Templates/Pages/Speak-StartPage[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Business Component Library/Templates/Pages/Speak-TaskPage[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Business Component Library/Templates/Pages/Speak-Theme[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Applications/ContentTesting/Common/Layouts/Renderings/TestActions/TestActions Parameters[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Applications/ContentTesting/Common/Layouts/Renderings/Data/ExpectedChangeSliderDataSource/ExpectedChangeSliderDataSource Parameters[/s]’ cannot be deleted.
- Template ‘[s]/sitecore/client/Applications/ContentTesting/Common/Layouts/Renderings/Data/DurationDataSource/DurationDataSource-Parameters[/s]’ cannot be deleted.
All of them had the message similar to
Template name: ‘{template name}'<br/> {Template ID: ‘{template guid}'<br/>The template will not be deleted, since one or more items are still based on this template.
Attempt One
I then looked at the items that where indicated. And for every item, I could only find one reference, which was Standard Values. As I initially thought they where to be deleted, and they where not in use, I deleted all the items, and then ran the upgrade. Upgrade fail. And with even more error messages, nearly all of the error messages where about missing templates. All I could think of was WTF.
Attempt Two
After spending time restore all the database backups, rollback all the config files modified and revert all the dll changes, I started the process again. Thank gawd I did the database backups.
This time, I ignored the errors, and then did an install. Boom. Failed again. This was really starting to annoy me. Restore the databases, rollback all the config changes and dll updated.
Attempt Three
By now I was starting to get frustrated. So I installed a fresh copy of Sitecore 8.1, and then doing an item by item comparison. Yup, all the items to be deleted, they where no longer in the relevant spaces in Sitecore v8.1. So by now I figured, third time lucky, lets just try it again. Still failed. You can see a pattern emerging here. Rolled everything back. This time I did the deployment up to running the .update file. Now I took another database backup. Because as I was expecting to run this process multiple times, I though if I can only restore the database, it going to cut down on my time
Attempt Four
I took the item id of every item that was causing an error in the upgrade analysis, and searched in the vanilla Sitecore 8.1 instances. All of them items existed, but they had all moved locations. All that is except three in the Core database.
- /TestActions/TestActions Parameters
- /Data/ExpectedChangeSliderDataSource/ExpectedChangeSliderDataSource Parameters
- /Data/DurationDataSource/DurationDataSource-Parameters
All are sub items of /sitecore/client/Applications/ContentTesting/Common/Layouts/Renderings
Back to the database to be upgraded, and verified again 100% that there where no references to these items. All that I could find where Standard Values. So I deleted those three items, and ran the upgrade process again. Finally a little bit of light at the end of the tunnel the upgrade ran. So I rolled everything back again, and started the upgrade process again. Only three errors
But as you can see, a serious amount of collisions and warnings. And the three errors where the ones above.
Post Upgrade Attempt One
You are probably thinking what, why attempt one. After running the update, I started to review nearly every message from the installation, and could not find any issues. So I went to the Core database and deleted the three items that where giving me problems. Then I went to the control panel, rebuild the Link databases. Waited until that was completed, and rebuilt the search indexes. Both returned successful. Next was attempt to rebuild the Indexes. Boom. Failures with several of the web indexes. e.g. sitecore_fxm_web_index first. Ok, my fault I should have published first.
Post Upgrade Attempt Two
After publishing Templates, System, Layout using Smart publish, back to the control panel. The link databases rebuilt successfully, the Search indexes completed successfully, but surprise surprise, building the indexes failed again.
WTF!!!!!!
The indexes could not find /sitecore/system/Marketing Control Panel/FXM.
Right look in the Master database, yup the items exists, and I copy the item id for Federated Experience Manager, {40AC2D94-D9D5-4907-8B3A-346A9DC8BD35}. Switch to the Web database, search for an item using the ID, and the item exists. Seriously WTF the item exists. After taking a break, I came back, and then I noticed that in Web, Marketing Control Panel was not called Marketing Control Panel, but was called Marketing Centre. This is the original name given in Sitecore 7.5
Back to web, and publish Templates, and System, but this time using the Republish option. Now I started getting errors with building error social_messages_web. This time, I republish (not Smart publish) the Social item and sub items, Finally I had all the indexes building successfully. After that I rebuilt the link databases, and the search indexes.
In total I had spent double the amount of time it took me to upgrade to Sitecore 8.1, as it did to upgrade from Sitecore 7.5 to Sitecore 7.5.
Thoughts
As a test I decided to upgrade a vanilla Sitecore 8.0 instance to Sitecore 8.1. Would you believe it, it reported all the same errors as I was experiencing.
I will admit that some of what I did above, was my own fault, and I should have done this upgrade in a more timely process. What would be helpful from the upgrade process is:
- If items are being moved, the process recognises this, and does not report an error that the template cannot be deleted
- If a template is to be deleted, verify its usage, and if it is only being used by its own Standard Values, don’t report it as an error. If it is to be reported, log it as Info or Warning but not as an error
- Look into Smart Publish, especially in regards to determining what needs to be updated
Myself, I will not just check the location of an item in a vanilla Sitecore instance, but will search for it by its ID.
The errors that I was receiving during the analysis, I did google, but got zero hits. Maybe in the future if this happens to others, you wont go through the same amount of trouble that I did.
Next Steps
While upgrade to Sitecore 8.1, Sitecore 8.2 Update 1 was released. I had a look at the Upgrade Guide and the documentation states that you can now upgrade from any version of Sitecore 8.1, or Sitecore 8.2 Initial Release. So I will be using this to go straight to Sitecore 8.2 Update 1 from Sitecore 8.1. Here’s hoping that process goes better.
Leave a Reply