upgrade sitecore 6.5 to 8.2 - part 2

On second thought…

In part 1 I described my temporary plan of attack for upgrading a Sitecore 6.5 project to 8.2. After a nice discussion on the Sitecore community slack I revised my initial plan. Basically I’m going to attach the existing databases to a vanilla site setup and upgrade. Separately I’ll upgrade the code and config to work with a 8.2 site. Finally the two will be linked, resulting in a perfect 8.2 project… or at least that’s the idea and it will have an old(er) codebase.

As for the code part only necessary changes will be made to get everything up and running. meaning changing or upgrading modules and rewriting code if needed. Sadly that means a lot of sheer UI and webforms code will remain for now.

The preparation plan will be mostly the same so I’ll leave it out in this post. The upgrade strategy has been changed and is now more detailed.

Sitecore database upgrade

  1. Stop development
  2. Clear publishing and event queues. set longer timeouts in web.config
  3. Shrink and rebuild db indexes
  4. Update all environments with production content (take care not to loose not deployed development)
  5. Link to vanilla site installations
  6. Upgrade to version 7.2 (or whichever version is supported by then)
  7. Use Express Migration Tool to upgrade to sitecore version 8.2
  8. Backup analysis and upgrade reports and logs

Steps for upgrading new site to next version

  1. Backup master/core/web/analytics databases of previous version
  2. Restore backups to DB’s with new version number
  3. Change app_config/connectionstrings.config to point to new databases (which are still in older version)
  4. Upgrade databases to new version

Refer to my post on bulk duplicating databases to see how I make the backups and restore duplicates.

Code / file upgrade

  1. Modify/upgrade config files to Sitecore version 8.2.
  2. Refactor code for Sitecore 8.2, commenting out all broken (third party or custom) code.
  3. Build/deploy this minimal version.
  4. Use the vanilla site versions until 8.2 is reached
  5. After upgrading databases, start deploying (working parts of) the code
  6. Gradually fix the code and update/replace the modules as needed
  7. Start updating the broken code / modules.
  8. Deploy version 8.2 (without modules) to staging or whatever temporary QA site
  9. Have key users verify the minimal 8.2 version on staging or whatever temporary QA site
  10. Build and deploy upgraded code
  11. Have key users retest entire site.

Steps for updating code to 8.2 version

  1. Branch code
  2. Modify publish settings and other references to site -> vanilla version 8.2
  3. Change all references for Sitecore version 6.5 to version 8.2
  4. Build, bugfix and deploy to site version 8.2
  5. Run (smoke) tests on site 8.2 (still with vanilla db)

Link upgraded databases to upgraded site files

  1. Backup Site and upgraded databases
  2. Change connection strings to upgraded database
  3. Test, bugfix and retest