Skip to main content

Sitecore 8.1 upgrade from 7.2

In the following post, I would like to share my experiences with regard to Sitecore upgrading and highlight some points.
We have a project which is running on Sitecore 7.2 update 4. (This project was originally developed on Sitecore 6.5, but we upgraded it a few months ago) We have decided to upgrade that project to 8.1. 

Probably you know there are more ways to move a project to Sitecore 8. e.g: You can create a new Sitecore 8 instance and transfer your content into the new instance. But we wanted to try the in-place upgrade process when the process modifies the existing instance. Moreover, we were curious how we can move old DMS data to xDB. 

Step 1: Upgrade to 7.5 (Initial release)

If you are already on Sitecore 7.2 you can move your solution to 7.5. Probably this is the hardest and slowest part of the path. Note: Always read and follow the upgrade notes from Sitecore before you start. 
Before you start 7.5 upgrade, you will need:
  • 7.5 update package (initial release)
  • Execute SQL scripts before install the update package
  • Two clean SQL databases for reporting database. (One primary and one secondary because of reporting db rebuild)
  • Configuration file changes
  • MongoDB server
If you are ready for the upgrade process, let's start it.
Running SQL scripts and update packages should be an easy step. If you are ready with them and config files are in place, you can convert your old DMS data into xDB. 

In our system we had ~380K visitors' data and ~500K visit records and the conversion process took ~1,5 - 2,5 hours. 
Fortunately, Sitecore provides a document about the conversion process. You can follow this document, but if you have already installed WFFM module, you will probably fail. Because the WFFM data reader type is wrong in the conversion guide, but don't worry, you can follow these instructions. If you are ready, you should see something similar in your MongoDB. 
A document from Contacts collection
A document from Interactions collection
Congratulations, You've just upgraded your instance to 7.5 Lets go with Sitecore 8.
Note: Attribute routing can break Sitecore's admin functionalities. More info here

Step 2: Upgrade 8.0 (Initial release)

Welcome to step 2. Don't worry, it is going to be easier than you think! You only need the following stuff: 
  • Sitecore Update package
  • Sitecore Update Installation Wizard
  • Configuration File changes
  • SQL server scripts
After installing Sitecore Update Installation Wizard you can run the upgrade scripts. (Always follow the official upgrade guide!) After you have installed update package via Update Installation Wizard, you can continue with configuration file changes. Now, you are using Sitecore 8. 
Please do not forget to clear your browser cache after every upgrade step and always test major functions like publishing, content editing, experience editor (Yes, Experience Editor is available in 8.0 ) and media uploading.

Step 3: Upgrade 8.1 (Initial release)

There have been 7 update packages for 8.0. Can I move my instance directly to 8.1 ? Yes, you can! 8.1 Upgrade guide writes the following prerequisites: 
  • 8.0. rev 141212 or later
  • Sitecore Update Installation wizard 1.0.0 rev 150930
  • Sitecore Upgrade package
  • ASP.NET MVC assemblies
  • Few MSSQL upgrade scripts. (which include 8.0 update 3 before install scripts)
  • And configuration file changes
Sitecore 8.1 requires a new licence key, called Sitecore.xDB. If your licence file does not contain this key, Sitecore will run in "CMS-Only" mode, so you will not be able to use Experience Analytics / marketing features. 
By the way, Sitecore 8.1 has some new great features/improvements: 
  • CMS-Only mode - giving the ability to switch off xDB. 
  • xDB supports Mongo 3.0 
  • Improvements on Experience Editor - You can edit shared layout details in Experience editor by switching to Shared Layouts view
  • FXM Supports WFFM - so you can embed your WFFM forms into external sites
  • Supports MVC Areas out of box
  • It uses MVC 5.2.3
  • new version of Sitecore SPEAK (2.0)
  • Contact Behavior Profile - "Ability to use historical behavior such as triggered marketing activities. (goals, events)"
  • IP Geo-Location is integrated into the platform - Cloud-based service, hosted and delivered by Sitecore (via Sitecore App Center)
  • Integrated Device Detection Service - Subscription via App Center
  • Client Logging - Ginving the ability to logging client side JS events/errors
  • Language Fallback - Site, Template, Item, field language fallback. Giving the ability to set up a chain of language fallbacks.
The upgrade process is the same: install Update Installation Wizard, then install the update package, run SQL scripts.
At configuration files, we have a major change. Sitecore moved all sitecore related configurations away from web.config to Sitecore.config. Sitecore.config can be found in the App_Config folder. 

Step 4: Upgrade 8.1 Update - 2

We are almost ready. Probably this is the easiest step so let's follow the upgrade guide, and upgrade our solution to update-2 .

I highly recommend update-2! If you had DMS and want to see old DMS data in your experience analytics, do not hesitate to perform update-2 upgrade. 
As far as Update 2 is concerned, you do not need to import historical data manually. Instead of importing it manually, you can enable the Sitecore.Experience.Analytics.Reaggregation.config file. More details here

Final Step: Rebuilding reporting database

Do you remember that we attached two new SQL Databases? This is the point when we are going to use the new databases. 
  • Enable the Sitecore.Experience.Analytics.Reaggregation.config, if you want to see historical DMS data in Experience Analytics.
  • Perform the report db rebuilding steps which are described here.
Unfortunately, I couldn't get Experience Profiles from historical data, but I'm still waiting for Sitecore Support. If I receive any news, I'll share it immediatelly.

My results: 


Please leave feedback or share your upgrade experience

Comments

  1. Very nice articles.
    I have some question regarding rebuild reporting database.
    Can we do rebuild reporting database after sitecore upgrade 7.2 to 8.1 ?
    we need to rebuild reporting database and going to next version.

    ReplyDelete
    Replies
    1. Thank you.
      Well, I rebuilt reporting database after I had finished the whole upgrade process.
      But, as I wrote at the end of post, I'm still waiting for sitecore to get historical data into experience profile, however, Experience analytics is working well with historical data.

      as I promised, I will update this article as soon as I receive response from sitecore with regard historical experience profile data.

      Delete
    2. Thank you.
      Actually I am getting error from rebuilt reporting database in sitecore version 7.5 so my work is stuck to upgrade sitecore 8.0 and 8.1 and also reported issue on sitecore support team and i am waiting reply from sitecore support team.
      Can i skip or not performed rebuilt reporting database step in sitecore 7.5 and directly start sitecore upgrade 8.0 ?

      Delete
    3. I think yes, you can skip. I rebuilt reporting db after 8.1 upgrade

      Delete
  2. Thank you.
    Which solr version is supported for sitecore 8.0 ? because we have currently used solr 4.6.0 version and we have getting error from there.

    ReplyDelete
  3. Hi,
    I dont know which version of Solr is supported by Sitecore 8.1 officially, but we use 5.x versions from Solr.

    ReplyDelete

Post a Comment

Popular posts from this blog

Create custom Sitecore Search Crawler

Hello, I would like to show an implementation of a custom crawler which prevents indexing items under specific paths. This is useful when you want to exclude a whole subtree from your index configurations. e.g: You have a multi-site structure which contains 3 sites. You want to implement search funcationlity on one of the sites (call site A) and visitors should be able to search in site B content, but content from site C should not be visible, and you dont want to break relevancy of the search result. The first step is create a class, call CustomCrawler.cs. This class should be derived from SitecoreItemCrawler class. Now, you can overwrite IsExcludedFromIndex method. If you are ready, you should change crawler in the search config. Add paths to ExcludeRoot node and seperate them by pipes. That's all. Now items are not indexed from the excluded paths, and you don't break the relevancy.

Sitecore SPEAK 3 UI collection

Hi, I would like to present my Sitecore SPEAK 3 UI library to you in the hope it will be a helpful template. Please check out a previous Sitecore SPEAK3 related post here . I've created a SPEAK 3 application, in which several SPEAK 3 components and styling are collected. You can download it from GitHub and check what different sitecore/angular components look like and check predefined styles, etc Moreover, I am calling on you all to contribute, because SPEAK 3 is really awesome, and it is quite fun even if you have never used Angular 4 before. How to use the sample code 1) Clone this repository . 2) Run 'npm install ' command in the project directory 3) Run ' npm run start ' command in the project directory 4) Open http://localhost:4123 in your browser How to use directives/components in your SPEAK3 application In this example we are going to add the  BackButton ,  Tabs  component and Table  directive to our application.  1) Make sure if the  @speak