For those of you that are regular visitors to this site you most likely noticed a number of changes to the site over the past 24 hours, including a small amount of downtime. This was caused by changes surrounding the upgrade of this site to DotNetNuke version 6.1.2. Now, I have worked on a number of DotNetNuke upgrades over the years, and I lost count a few years back at about 300 upgrades. This site was by-far one of the hardest upgrades that I have ever completed and in this post I will share a bit around the growing pains that were experiences throughout the process.
Before I get into the nitty-gritty specifics of how the upgrade process was less than "stellar" I want to give a quick overview of the modules, configuration, and DotNetNuke version involved PRIOR to the upgrade of the site. This site was initially setup in September of 2006 and has only experienced limited upgrades to the DotNetNuke core. I've talked about the reasoning behind the lack of upgrades in the past so I will not rehash that here. Prior to the attempt of upgrading this site was running on DotNetNuke Version 4.9.5 and had been very stable. From a third-party perspective there are actually very minimal modules installed, but there were a few key things that caused issues. Below is the list of key items/configuration elements, some of which did not directly impact the upgrade.
- Ventrian News Articles (Really, really old version)
- Snapsis PageBlaster (Really, really old version)
- Active Forums
- iFinity Free URL Rewriting Module (Really old version)
- Custom DNN Skin using Telerik RadMenu (Old version)
- UrlRewriting.net www redirect module
Where the Problems Started
Going in to this upgrade I knew there were going to be problems as some items were known issues. For example, older versions of the iFinity product needed to be replaced due to integration changes as well as the skin due to the inclusion of Telerik in DotNetNuke 5.3.x and later.
Before I even started the upgrade I reached out to a few people to get some help on the items that I knew would be killers. I reached out to Mark Allan of DnnGarden to change the menu on my skin to use the DDRMenu rather than the Telerik one to avoid the known catastrophic failure of the skin after Telerik was included in the core. I also went though and purchased the full version of UrlMaster and worked to get some of the other "stuff" ready to move away.
Initial Upgrade Attempt
About three months ago I tried my first actual attempt at upgrading the site. Before I started I used a clean 6.x site to test the new skin and other upgraded modules to ensure that everything would work in the target version. I tried the upgrade following the published upgrade paths in the DotNetNuke.com Wiki which is the process I used for all of my other sites. Nothing worked, first run only got through part of the 5.x upgrades before the site was toast.
Looking into things I made a few executive decisions. UrlRewriting.NET was pulled out entirely before the Upgrade, Friendly Url's were disabled, and non-needed modules removed. I reverted to the base skin as well for a page to be able to test the upgrade. This got me further along, but still ran into issues galore and finally decided to abandon it for a while.
Finally with the release of DotNetNuke 6.1.2 I really wanted to get the site upgraded and reached out again for a bit of help from the community. Since I don't directly make money from this site, I had already invested too much time in the upgrade and it was easier for me to find someone else to work on it, so I could focus on Module Development and other stuff. So I reached out to Joe Craig, who I have been sending a large number of upgrade referrals to in recent months.
Joe took the sites to his server and went to town on the upgrade. In just a few days I got word that the sites were ready to go. He found a few other modules that needed upgraded but was able to get the upgrade completed and the site running like normal. He followed a similar process, disabling/removing friendly URL stuff, and was able to successfully get the site up.
I then proceeded to add in UrlMaster to clear the URL's back to the way they need to be for proper SEO and existing links and have been working on some styling changes and now we have a fully working site.
So why did I post this here? Well I think there are a number of lessons to be learned from this upgrade. There were things I did well for example knowing about skin issues, etc, but some items that didn't go as well such as missing modules that needed to be upgraded. I don't regret the decision that I made to delay the upgrades, but keeping a solid inventory of installed modules, added configurations, and third-party dependencies is very important.
Thankfully, given the tendency to backup, test, retest, and validate though we accomplished the upgrade with only about 10-15 minutes of downtime for the site, even though hours and hours were spent on this outside of that. Now that I have the site upgraded, I can start to move on to a few other things and improve some of the functionality here.