Sie sind auf Seite 1von 34

Sitecore Version Upgrade Whitepaper 1.

Contents
Disclaimer: .........................................................................................................................................3
Introduction: ......................................................................................................................................4
The Basic Sitecore Solution: .........................................................................................................4
The Expert Sitecore Solution: .......................................................................................................4
What is Sitecore Version Upgrade? ......................................................................................................5
Why upgrade our current Sitecore Solution to a later version? ..............................................................6
How to approach a Sitecore Version Upgrade? .....................................................................................6
Basic Sitecore Solution: ...................................................................................................................6

Identify a version of Sitecore that we want as a target version: ..............................................7

Verify that the version we selected as Target Version is not mentioned only as a feature
release or to be used as only an intermediate version: ................................................................ 10

Check if there are any Known Issues for our selected version: .............................................. 10

Check for Deprecated Functionalities: ................................................................................. 12

Identify the pre-requisites for that particular Version of Sitecore:......................................... 13

Identify the number of iterations that might be required: .................................................... 16

Check if we need to upgrade the .NET Framework for our solution: ...................................... 18

Check if for our target version, we need to upgrade the OS on our Development boxes as well
as our Live Servers:.................................................................................................................... 19

Check if the target version requires us to upgrade our SQL Server: ....................................... 19

Identify if there are any Hotfixes or Workarounds Sitecore:.................................................. 19

Check for compatibility of the Sitecore Marketplace modules installed in our solution with the
required Target version: ............................................................................................................ 20
Check our custom code which uses some DLLs from Sitecore instance NewtonSoft,
HTMLAgilityPack, etc ................................................................................................................. 21
Expert Sitecore Solution: ............................................................................................................... 21
How to Upgrade our Current Sitecore Solution? ................................................................................. 21
Sitecore Version Upgrade for a Basic Solution:................................................................................ 21
Content Authoring Server: ......................................................................................................... 21
Content Delivery Server:............................................................................................................ 23
Sitecore Version Upgrade for an Expert Solution: ........................................................................ 24
Content Authoring Server: ......................................................................................................... 24
Content Delivery Server:............................................................................................................ 26
Frequently Asked Questions .............................................................................................................. 26
Sitecore Endeavor

1|P age

Sitecore Version Upgrade Whitepaper 1.0


How do I install the Update Package using the Installation wizard?............................................ 26
What should I do if I have multiple CM/Content Authoring Servers? Do I need to execute the
Sitecore Update Wizard on all those Content Authoring instances? .............................................. 26
What if I have a Dedicated Publishing Instance along with my Content Authoring Server? ............. 27
How to upgrade Content Delivery Server? .................................................................................. 27
How do I find which items/files are newly added or updated/changed? ....................................... 27
I am confused seeing so many links for the changes required to be done in my config file. How
should we perform the config changes?...................................................................................... 27
Doing the Configuration changes for version upgrades is a tough task, is there an easier way to do
that?......................................................................................................................................... 28
We have an Expert Solution but not all items are synced. The Templates, System and Layouts are
fully synced but Content and Media Library on Live Content Authoring Server has many items then
in my Repository. What can we do?............................................................................................ 29
While installing the Update package, my Sitecore instance suddenly crashed and I could not
download my Installation Log and Report. Can I get it from somewhere? ..................................... 29
Learnings of our Team while performing Sitecore Version Upgrade: .................................................... 30

Always install Upgrade package in FF Browser rather than IE................................................ 30

Change the values of DefaultSQLTimeout and DataProviderTimeout..................................... 30

If you are upgrading your Sitecore solution, do keep at least one of your older versions up and
running..................................................................................................................................... 30

Sometimes, if you get an error related to the Database Schema, dont worry, just proceed to
your Target Version. To confirm, ask Sitecore Support. ................................................................ 31

Do you have some Jumbled JSON seen on your Browser page in Page Editor Mode? ............. 31

Shrink Databases and Rebuild the Indexes from the Management Studio to have a faster
operation.................................................................................................................................. 31

Preserve Analysis and Installation Logs & Reports ................................................................ 32

We run into some issue after upgrade Google it out or raise with Sitecore Support ............ 32

Create an Upgrade team (IT Infrastructure Team, Developers & QA) to discuss various
scenarios from their perspectives. .............................................................................................. 32

Perform Bug Bash for every environment and make sure every Bug is resolved and then we
move to the environment ahead. ............................................................................................... 32

Document the Approach and Full Steps of Upgrade and discuss with the Upgrade Team ....... 32

References: .................................................................................................................................. 32
Tools that can be useful: ............................................................................................................... 33

Sitecore Endeavor

2|P age

Sitecore Version Upgrade Whitepaper 1.0

Disclaimer:
My dear Sitecore Family,
This document is an effort of sharing the experience and learning that I gained while working on a Version
Upgrades for a number of Sitecore Solutions.
There are always a number of questions that any/every developer has in his/her mind before going ahead
with an upgrade for their Sitecore Solution. This document tries to get you through a number of questions
which our managers would ask us and we probably wont have it at the first go. It includes a number of
frequently asked questions regarding the Sitecore Version Upgrade.
A number of diagrams/figures included in the document are made by me to explain things in a simple
way. The document may even include a few screenshots from some links on Sitecore Developer Network
Release notes, Upgrade Steps and a number of blogs, to explain things in detail and make things easy to
understand.
This document is for the Sitecore community to understand the various things included in upgrading a
Sitecore solution as well as getting thorough with the small and big details of the same.
The information included in this document is solely to understand things more about the Sitecore Upgrade
process and I sincerely regret if any information here is wrong. At the same time, it would be great if you
could let me know if you find an error in it. A kind request to all those who are more experienced or have
had some different experience, to please share their knowledge about the topic. I would include it in this
document to make it a concise and a precise document for every one of us the ones upgrading their
solution for the first time as well as for the ones who have been doing it.
Sincerely,
Varun Shringarpure

Sitecore Endeavor

3|P age

Sitecore Version Upgrade Whitepaper 1.0

Introduction:
Sitecore Version upgrade, is a process which involves a set of steps performed on our Sitecore Solution,
to upgrade it to the version of Sitecore later than what we currently have.
We need to categorize the Sitecore Version Upgrade, into two main sections based on some tools that we
use for our Sitecore Solutions:
A. The Expert Sitecore Solution a Solution using an Item Synchronization tool like TDS, Unicorn
or Sitecore Development Toolkit.
B. The Basic Sitecore Solution a solution without any Item Synchronization tool.
Before continuing further, lets get some basic details of the above two.

The Basic Sitecore Solution:


This is a normal Sitecore solution. In a basic Sitecore solution, the way in which we synchronize the
Sitecore items between various Sitecore instances and environments, is by packaging the m using the
Sitecore Package Designer. Without any doubt, its a very useful tool provided to us by Sitecore, and we
all should thank Sitecore for that. But thinking from the perspective of a team, working on their individual
development environments, it becomes a little difficult to manage. So in our discussion moving further in
this document, whenever we refer to a Basic Sitecore Solution, we refer to the one that uses Sitecore
Package Designer to sync items and does not have any external tool available for synchronizing them.

The Expert Sitecore Solution:


Recently, in the Sitecore world, there has been a dawn of some great modules made by different Sitecore
enthusiasts as well as of various tools made by Sitecore Partners that make the work of a developer very
easy. A few of them took the problem discussed above as a challenge, and developed tools to overcome
them. They are TDS i.e. Team Development on Sitecore by Hedgehog Development, Unicorn by Kamsar,
Sitecore Development Toolkit by Alen Pelin (There might be some more in this list, but I am aware of
these).
These tools, completely changed the way in which a Sitecore developer worked to sync his/her items with
other developers in the team or between various environments. This is because, the Sitecore Items are
directly available as files just as our code files. So we can apply all the Repository functions on them we
can commit them, compare them, merge them and then sync them with our own Sitecore solution. So
ideally, we can say the Sitecore items of our Business case, or concern are distinctly available with us.
Now, as we are clear with the two distinct type of Sitecore solutions, lets ask ourselves some basic
questions that might help us understand as well as approach a Sitecore Version Upgrade in a way that is
suitable for our case.
One point to remember, for every question that we ask ourselves, we will first cons ider the Basic Sitecore
Solution and then the Expert Sitecore Solution.

Sitecore Endeavor

4|P age

Sitecore Version Upgrade Whitepaper 1.0

What is Sitecore Version Upgrade?


From the top view the steps for Sitecore Version Upgrade are :

Installing the Sitecore Update Package


Executing some pre and post install SQL Scripts (if available)
Updating/Replacing various the configuration files.

Sitecore Endeavor

5|P age

Sitecore Version Upgrade Whitepaper 1.0


The above is true as far as both the Basic as well as the Expert Solution is concerned. But in case of an
Expert Sitecore Solution, we have one more and quite easier way to approach a Sitecore Version Upgrade.
So, from the Top View the steps for Upgrading an Expert Sitecore Solution are:

Installing a new Sitecore solution of the required Target Version.


Sync the items of concern from the Repository with the newly added Sitecore soluti on.

Both the approaches look quite simple in the first look but as we go deeper into the core of its
understanding, it gets equally critical for us as well as our clients who owns that Sitecore solution.

Why upgrade our current Sitecore Solution to a later version?


There could be one or more of a number of reasons as to why should we go ahead and upgrade our
Sitecore solution to the latest version or a particular later Sitecore version:
1. To have the latest Security fixes in our solution that Sitecore has applied in a particular version.
2. To make use of the latest functionality that Sitecore has introduced in a particular version of
Sitecore in our current Sitecore Solution.
3. To remove a Hotfix assembly from our solution, when we find that it has been solved and available
in a particular main stream version of Sitecore.
4. To get rid of a Sitecore.Support assembly i.e. a Workaround solution of an issue from our
Sitecore solution, when get to know that it has been solved and available in a particular main
stream version of Sitecore.
Also, the reasons why should be upgrade, remain the same for both the type of Sitecore Solutions Basic
as well as Expert!

How to approach a Sitecore Version Upgrade?


As for any other project, it is utmost necessary for a good planning and then its execution is in case of
upgrading our Sitecore solution. For simplicity, we will first consider Basic Sitecore Solution and then the
Expert Sitecore solution.

Basic Sitecore Solution:


There are a set of tasks included while approaching Sitecore Version Upgrade for a Basic Solution. Lets
look at each one of them one after the other.
1. Identify a version of Sitecore that we want as a target version.
2. Verify that the version we selected as Target Version is not mentioned only as a feature re lease
or to be used as only an intermediate version.
3. Check if there are any Known Issues for our selected version.
4. Check for Deprecated Functionalities.
5. Identify the pre-requisites for that particular Version of Sitecore.
6. Identify the number of iterations that might be required.
Sitecore Endeavor

6|P age

Sitecore Version Upgrade Whitepaper 1.0


7. Check if we need to upgrade the .NET Framework for our solution.
8. Check if for our target version, we need to upgrade the OS on our Development boxes as well as
our Live Servers.
9. Check if the target version requires us to upgrade our SQL Server.
10. Identify if there are any Hotfixes or Workarounds Sitecore.
11. Check for compatibility of the Sitecore Marketplace modules installed in our solution with the
required Target version.
12. Check our custom code which uses some DLLs from Sitecore instance NewtonSoft,
HTMLAgilityPack, etc.

Identify a version of Sitecore that we want as a target version:


The below flowchart shows a small algorithm to identify and select a Target version for Sitecore.

Sitecore Endeavor

7|P age

Sitecore Version Upgrade Whitepaper 1.0


Steps to select a Target Sitecore Version are as follows:
1) Go to Sitecore Developer Network
2) Go to Products > Sitecore CMS
3) Here, we find main version links for Sitecore.
a. Sitecore CMS 7 and DMS >
http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%207.aspx
b. Sitecore CMS 6 and DMS >
http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206.aspx

4) Now we can see Release Notes for those particular Main versions and go to the Release History
Section which is the Change Log that Sitecore provides for each version, specifying the main
highlights of the version, new features and functionalities, the main improvements, bug and
security fixes. Below are a few screenshots which might help us to reach there.

Sitecore Endeavor

8|P age

Sitecore Version Upgrade Whitepaper 1.0

5)

6)

7)

8)
9)

This section, generally proves to be the main decider whether we want to go ahead with that
version as our target version or not and I think the credit goes to Sitecore for writing it so well!
At the top, will be the last released version say 7.5 for Sitecore CMS 7. In a normal scenario, we
would directly select the latest Sitecore Version available, select it as a Target Version and decide
to upgrade to it.
But, say for some reason (which is kind of very rare) we need to upgrade to a Sitecore Version
only till the point where our new Feature or Bug Fix requirement gets solved. In that case, move
bottom-up in the Sitecore Change Log. Select any particular version from the left menu, and start
reading its main features, newly added functionalities, code improvements, bug fixes, security
updates, etc.
While coming from top to bottom in these steps, we will definitely identify whether the version
we selected is the one we wanted. But still, its good to question ourselves once again does this
version suffice the main purpose of upgrade?
If no, then repeat the steps with a version later than that above in the list on left menu.
If yes, then that becomes our Target Version.

Sitecore Endeavor

9|P age

Sitecore Version Upgrade Whitepaper 1.0

Verify that the version we selected as Target Version is not mentioned only as a feature
release or to be used as only an intermediate version:
There are a number of times, when Sitecore mentions a particular version not to be selected as a target
version and a higher version of Sitecore to be selected as a Target version. Consider this case of Sitecore
6.4.0 Initial Release:

Lets make sure, we havent selected any version which Sitecore has already mentioned not to use as a
Target version.

Check if there are any Known Issues for our selected version:
This is very rare, as Sitecore thoroughly tests every version of Sitecore before releasing it. But quite
possible, that a version of Sitecore may have some issue. In the Release Notes section, below the Release
History, is a link to all the Known issues for that version of Sitecore. Ill take a case of Sitecore CMS 6 for
this case.

Clicking it, takes us to the page where all the known issues are mentioned, as below.

Sitecore Endeavor

10 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Drilling down further, the description of each issue and its solution is available in a page on Sitecore
Knowledge Base.
Say details of 2.1 Content changes of media items may not be reflected in browser immediately are
available at https://kb.sitecore.net/articles/218124

Sitecore Endeavor

11 |
Page

Sitecore Version Upgrade Whitepaper 1.0


Also, Sitecore Community is very active. Once a new version of Sitecore is launched, there are many
enthusiasts, which get on to try and share their views and quite vital information with the Community,
thus helping everyone. This information might include how a particular functionality is helpful or if they
find an issue and get a solution, then even that. So search for that particular version of Sitecore, we would
definitely find a couple of blogs about positives of that version, some challenges that they might have
faced while upgrading (if any) and their solutions. In case we dont find anything, we can even check on
SDN Forum if there is anything of our help or use. Quite possible, that the solution of such a known issue
is already available either given by Sitecore support or found & fixed by a Sitecore developer.
Its always good to know first that there is a known issue to take care of it when time comes . Also, if any
one of us faces an issue while upgrade or after that while testing, I believe it becomes our duty not just to
report it to Sitecore but also blog (share with community) about its solution.

Check for Deprecated Functionalities:


Specifically check, the Deprecated Functionalities section of various versions of Sitecore which fall
between our current version and the desired Target Version. This is because, if any of our custom code,
uses those functionalities, its a must to update our code to use the newly recommended class-function.
This surely can be kept for later, when the upgrade is done and we rebuild our Visual Studio solution, we
might get warnings and then we can change. But, if Sitecore is already giving us the list why not plan and
verify it right now.
The deprecated functionality section is in the Release notes, mostly towards the end of it , as an example
a screenshot of Sitecore 7.2 Initial release is as follows:

Sitecore Endeavor

12 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Identify the pre-requisites for that particular Version of Sitecore:


Once we decide on our Target Version based on the Change Log, we would go to its Downloads section
on the Sitecore Developer Network.
In every release history, before starting the Change Log, Sitecore provides us with a link to the Downloads
section of the main version.

It leads us to a page where download links for particular main versions as well as the minor versions of
Sitecore may be available.

Alternatively, we can also go to the download link of a particular version from the main links of Sitecore
CMS & DMS too as seen below:
Sitecore Endeavor

13 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Just below the release notes, a section says Download CMS+DMS, click there and it will take you to the
same downloads page as seen above.

Moving down further, lets say, Ill click on Sitecore 7.2 Link, then it will take me to the main downloads
page for that particular version of Sitecore.

Sitecore Endeavor

14 |
Page

Sitecore Version Upgrade Whitepaper 1.0

On the left, well be able to see the download links for various other Sitecore 7 versions released by
Sitecore.

Each download detail page has 2 sections


1) Download the Plain Version
2) Upgrade to this version

Sitecore Endeavor

15 |
Page

Sitecore Version Upgrade Whitepaper 1.0


As we want to upgrade our solution, we will select the second link the upgrade link

As we can see, the first sub-section specifies the pre-requisites of this version.

Identify the number of iterations that might be required:


Now how do we find this? Well, this available from the pre-requisite Sitecore version of our Target Version
and the pre-requisite version of it and so on. For this, we would move in a reverse order, from our required
Sitecore target version.
I have tried to pen down a small algorithm for identifying the number of iterations along with the details

Sitecore Endeavor

16 |
Page

Sitecore Version Upgrade Whitepaper 1.0


Considering an example for this, to better understand as well as verify the above algorithm, say we are on
Sitecore 6.3 Update 3 (rev. 101029) and we want to upgrade to Sitecore 7.2 Update-2 (rev. 140526) So
lets follow the algorithm and check how many iterations would we need.
Dry Run of Algorithm:
Lets start:
Iteration 1:
Selected Target Version Sitecore 7.2 Update 2
Add the current Version Name to Iteration List
Check the prerequisite Sitecore 7.2 Initial Release
Is our Current Version equal to or higher than our Current Version NO
Iteration 2:
Open the Download link of Sitecore 7.2 Initial Release
Add the current Version Name to Iteration List
Check the prerequisite Sitecore 7.1 Initial Release
Is our Current Version equal to or higher than our Current Version NO
Iteration 3:
Open the Download link of Sitecore 7.1 Initial Release
Add the current Version Name to Iteration List
Check the prerequisite Sitecore 7.0 Initial Release
Is our Current Version equal to or higher than our Current Version NO
Iteration 4:
Open the Download link of Sitecore 7.0 Initial Release
Add the current Version Name to Iteration List
Check the prerequisite Sitecore 6.6.0 Initial Release
Is our Current Version equal to or higher than our Current Version NO
Iteration 5:
Open the Download link of Sitecore 6.6.0 Initial Release
Add the current Version Name to Iteration List
Check the prerequisite Sitecore 6.5.0 Initial Release
Is our Current Version equal to or higher than our Current Version NO
Iteration 6:
Open the Download link of Sitecore 6.5.0 Initial Release
Add the current Version Name to Iteration List
Check the prerequisite Sitecore 6.4.0 Initial Release
Is our Current Version equal to or higher than our Current Version NO

Sitecore Endeavor

17 |
Page

Sitecore Version Upgrade Whitepaper 1.0


Iteration 7:
Open the Download link of Sitecore 6.4.0 Initial Release
Add the current Version Name to Iteration List
Check the prerequisite Sitecore 6.3.0 Initial Release
Is our Current Version equal to or higher than our Current Version YES
Algorithm Ends The number of iterations to achieve the Target Sitecore Version from our
current Version is as follows:

Also, I found a nice website Sitecore Update helper developed by Alexander Doroshenko though not
updated, can be very helpful to us identifying the number of iterations that we might require http://sitecoreupdate.somee.com/Default.aspx

Check if we need to upgrade the .NET Framework for our solution:


Sitecore manages this at Sitecore Knowledge base in a document with name: Sitecore CMS Compatibility
Table. A screenshot of the related section of it is as follows:

Sitecore Endeavor

18 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Check if for our target version, we need to upgrade the OS on our Development boxes as
well as our Live Servers:
Sitecore manages this at the same location it manages the above Sitecore CMS Compatibility Table. A
screenshot of the related section of it is as follows:

Check if the target version requires us to upgrade our SQL Server:


For this too, Sitecore manages the information at the Sitecore Knowledge Base in a document Sitecore
CMS Compatibility Table. A screenshot of the related section of it is as follows:

Identify if there are any Hotfixes or Workarounds Sitecore:


Lets go to the bin directory of our Sitecore solution and check if there are any Sitecore.Support DLL(s)
and also check the properties of our Sitecore.Kernel if HotFix is mentioned in its description. If in case our
current solution say has a number Sitecore.Support DLL(s) and/or Hotfix DLL(s), its worth checking if that
is solved in any particular version of Sitecore before or at least in the one that we have selected. A location
to easily identify that is our Sitecore Support portal. Whenever we raise an issue with Sitecore, the support
guys check it thoroughly and report it as a Bug if its genuine. They generally provide us with a workaround
of the solution in form of Sitecore.Support DLL. In case the issue that we report is very critical say
something in Sitecore Caching which lies quite internally in Sitecore.Kernel DLL, they provide us with a
Hotfix of the Sitecore.Kernel. At the same time, Sitecore Support is generous enough, to always update
Sitecore Endeavor

19 |
Page

Sitecore Version Upgrade Whitepaper 1.0


all such tickets that are reported as Bugs to Bug Fixed with along with the information of the particular
version of Sitecore where it has been fixed. So lets refer to all those tickets which have status Bug
Reported and/or Bug Fixed. In case its not updated, we can do one of the two things search the Sitecore
Change Log with the Ticket ID or the Issue ID which might be assigned to us in the ticket itself. If we are
able to find its good, else we might make a list of all such DLLs and ask Sitecore if the fixes for those issues
are available in the version that we have selected.
Again, considering the worst case, if say for some Support DLL the solution is still not merged with our
target version (which is quite rare to happen) then we can ask Support team if the same DLL would
function without any issue or would be need a new one if our target version requires Dotnet Framework
upgrade as discussed above.

Check for compatibility of the Sitecore Marketplace modules installed in our solution with
the required Target version:
Sitecore manages a list of modules and its compatibility table is managed by them in Sitecore Knowledge
Base here: Sitecore Modules Compatibility Table. If the modules of our concern is here, we can easily
identify and note that down. In case the module you have installed, is not in this list, not to worry!
Generally, with every Sitecore marketplace module, its requirements section specifies the various versions
of Sitecore on which it might run.

As in the above example, what this means is, this particular module is tried and tested well by the
developer till Sitecore 6.5 doesnt specifically mean it wont run on Sitecore 6.6 or above, but it ideally
means it might not. But for us to be on a safer side, we need to make a list of all the modules and identify
from its Requirements which might not work with our Target Sitecore solution. Best would be to try that
particular module on a plain Sitecore solution of our target version.
Considering the worst case, we are able to identify that a particular Sitecore module is no more working
or throwing errors in our log file for being incompatible its nothing to worry about, as many of the
Sitecore Enthusiasts put up the code for the module on GitHub. So either we might ask the developer of
the module to update the code for the version of Sitecore we want or we ourselves update it and push
the changed code to GitHub for others to use. In case the module we use is just as a package on the
marketplace and its code isnt available, we can ask its developer to help us out as well as raise the same
with SDN Forum or Sitecore Support I guess. In parallel to that, we can decompile the code of that module
in a reflector or any such decompiler, create a class library with the required changes in the code of the
module, change the code references at required places and make it working.

Sitecore Endeavor

20 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Check our custom code which uses some DLLs from Sitecore instance NewtonSoft,
HTMLAgilityPack, etc
Sometimes, due to some specific requirement, we might have made some tool or functionality using some
DLL which is present in the Sitecore solution like say NewtonSoft or HTMLAgilityPack. This is because with
some of the new versions, Sitecore has upgraded these DLLs, and quite possible, that might affect our tool
or functionality. So to be better prepared, lets make a list of various functionalities in our custom code
that uses them as we might need to update them as per the new DLL added.

Expert Sitecore Solution:


While approaching the Sitecore Version Upgrade, whether its the Expert Solution or the Basic solution,
all the steps except Point 6 remains the same (Point 6: Identify the number of iterations that might be
required).
As we have discussed previously, an expert solution is the one with an item sync tool, so we do not need
to worry about the number of iterations. This is because, we only need the Plain Sitecore Solution of the
selected target Sitecore Version. Hence, well skip the step 6 of Basic Solution, after selecting the Target
Sitecore Version we would directly proceed to point 7.

How to Upgrade our Current Sitecore Solution?


Whether we have a basic Sitecore solution or an expert Sitecore solution, once we follow all the above
steps, we are aware of the environment and the instance and that we are ready to upgrade our current
solution. We should upgrade our Sitecore instances the same way we follow our sprint deployment phases
from local Dev box to integration Dev environment to UAT environment to CA/CD Live Environment.

Sitecore Version Upgrade for a Basic Solution:


Sitecore provides us with the steps of how to upgrade our current Sitecore Solution stepwise to each
intermediate version, and reach our required Target Version, Ive tried to mention a few steps to upgrade
to summarize the steps which remain common irrespective of the current version and required target
version of Sitecore.

Content Authoring Server:


1. Mention the Current Sitecore Version
2. Download all the required Sitecore Update packages and SQL Scripts and put them at a location
on Disk.
3. Backup the Sitecore Website (and even the Sitecore Project/s if we manage it decoupled http://varunvns.wordpress.com/2014/06/03/setup-sitecore-in-developer-box-in-less-than-5minutes/
http://varunvns.wordpress.com/2014/06/21/benefits-of-setting-up-sitecore-developer-boxloosely-coupled/ )
4. Backup the Sitecore Databases.
5. Execute the Pre-Install (Before Install) SQL Script to update the DB Schema (if any).
6. Check your Sitecore Update Installation wizard whether latest or not and open it. ( Sometimes,
Sitecore recommends, to install the latest Sitecore Update Installation wizard. It is a must to do
Sitecore Endeavor

21 |
Page

Sitecore Version Upgrade Whitepaper 1.0

7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.

so if Sitecore recommends it, as it might have some bug fixes/updates which are of our help
moving forward.)
Upload the Sitecore Update package.
Analyze the Package.
Download Analysis Log and Analysis Report and store it somewhere.
Install the Package.
Download Installation Log and Installation Report and store it somewhere.
Execute the Post-Install (After Install) SQL Script to update the DB Schema (if any).
Make the necessary Config changes (refer to these two questions in Frequently Asked
Questions, for more details Configuration Question 1 & Configuration Question 2
Clear Browser Cache
Once the Sitecore instance is up, go to Sitecore Desktop and Rebuild Search Indexes
Follow steps 3 through 15 till we reach the required Target Version of Sitecore.
Deploy our Custom code changes DLLs, files, etc.

Sitecore Endeavor

22 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Next is identify the list of item/s that we need to publish from the Installation Logs/Report.

Content Delivery Server:


1.
2.
3.
4.
5.

Backup the Sitecore Website.


Backup the Sitecore Databases.
Execute the Pre-Install (Before Install) SQL Script to update the DB Schema (if any).
Execute the Post-Install (After Install) SQL Script to update the DB Schema (if any).
Publish the items identified to be published.
Sitecore Endeavor

23 |
Page

Sitecore Version Upgrade Whitepaper 1.0


6. Make the necessary Config changes
7. Deploy our Custom code changes DLLs, files, etc.

Sitecore Version Upgrade for an Expert Solution:


When we have an expert Sitecore Solution, the choice remains with us, whether we want to upgrade it
the basic way, or we want to do it a smarter way. Smarter way means instead of following the
complete upgrade procedure, we will directly install the required Target version and deploy our customs
items & files as a deployment package. And with that, we can say our Sitecore Version is upgraded.

Content Authoring Server:


1. Download the required Target Sitecore Version from Sitecore Developer Network.
2. Install it and make it completely running.
3. If we have a decoupled Sitecore solution, like the one discussed here http://varunvns.wordpress.com/2014/06/03/setup-sitecore-in-developer-box-in-less-than-5minutes/, create a new Visual Studio Publish Setting to the point to the new Instance, change
the Sitecore DLL references to that of the new one, make the required code changes and Publish
the changes.
4. If we dont have a decoupled solution and our Sitecore folders reside inside our Visual Studio
solution, then replace all the Sitecore folders in our visual studio solution with that of the new
instance, build the solution and fix the Compilation errors
5. Sync the Sitecore Items with the new solution from our Project into the Sitecore Databases.
Sitecore Endeavor

24 |
Page

Sitecore Version Upgrade Whitepaper 1.0


6. Make the changes in IIS Manager, add the bindings to the new Sitecore Solution and stop the
old Sitecore instance.

Sitecore Endeavor

25 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Content Delivery Server:


For the Content delivery server, the steps remain same as compared to that of the Basic Solution.

Frequently Asked Questions


How do I install the Update Package using the Installation wizard?
This is mentioned in the Update Steps that Sitecore provides us, we need to use Sitecore Update
Installation Wizard and not the one that we access from Sitecore Desktop to install various Sitecore
packages. It is present here: http://oursite/sitecore/admin/updateinstallationwizard.aspx

What should I do if I have multiple CM/Content Authoring Servers? Do I need to execute the
Sitecore Update Wizard on all those Content Authoring instances?
We have almost got to a conclusion as to what does a Sitecore Version Upgrade include:

Pre & Post SQL Scripts


Sitecore Update Package
o Adds and/or updates Sitecore items (Sitecore Databases)
o Adds and/or updates Sitecore Files (Data and Website Directory)
Config File Changes
Deployment of the changes of our custom code & configurations ( if necessary, which generally
is).

Now whenever we Upgrade the Sitecore Version of one of the multiple Sitecore Content Authoring
instances we follow all the above 4 steps.
About the Pre and Post SQL Scripts they are for updating the Database Schema as we have multiple
CM/Content Authoring servers their Core and Master DB would be same. So we dont need to execute
them again. Next, about the Sitecore Update package - the item changes are already done in the Database
so ideally your Database is upgraded.
So what remains in upgrading the rest of our CM/Content Authoring instances are Config Files and our
Custom Code files and DLLs. As our multiple instances would have the same configuration except a few
say the instance name the upgrade Config changes would be identical, so, we dont need to make those
changes to configs of each of the instance. Instead, make the changes to one, and copy the same files to
other instances with the required changes as per our environment. (We would ideally be managing this
in our repository)
Thus, if we have multiple Sitecore Content Authoring servers, and we want to upgrade our Sitecore
Version:
We need to execute all the Sitecore Upgrade Steps on one instance
Deploy the config & Code changes on all of the servers.

Sitecore Endeavor

26 |
Page

Sitecore Version Upgrade Whitepaper 1.0

What if I have a Dedicated Publishing Instance along with my Content Authoring Server?
A Dedicated Publishing Instance, can be said as a Content Authoring Server specifically for publishing
our item changes.
So in this case too, we should follow the steps mentioned above .

How to upgrade Content Delivery Server?


We do not need to execute the Update Installation wizard of Sitecore for upgrading our Content
Delivery Server. For that we have the following steps:

Execute the SQL Scripts Pre and/or Post Scripts (if any).
Publish the items changed by Sitecore during upgrade.
Push all our Custom code as well as Sitecore files and configs as a deployment package onto our
CD Servers.

How do I find which items/files are newly added or updated/changed?


As we follow the steps provided to us by Sitecore and execute the Sitecore Update Installation Wizard,
we reach to a step Analyze & Install. In both of these, Sitecore provides us with log files as well as reports.
Say when we Analyze, Sitecore provides us with Analysis Log and in ne xt step is Analysis Report and when
we say Install after that is done it gives us Installation Log and Installation Report. Sitecore mentions every
change of file or item into the log and report of Analysis and Installation.
We should save these Logs and Reports and we can easily find the files that are added, changed or deleted
by any particular version of Sitecore.
Alternatively, if we have installed the Sitecore History Viewer Module we will be able to identify the
Item changes for the databases.

I am confused seeing so many links for the changes required to be done in my config file. How
should we perform the config changes?
Sitecore manages the config changes for upgrades very nicely and easy to understand and do. Lets take
an example to understand this better.
Say we are currently moving from Sitecore 6.4.0 Initial Release to Sitecore 6.5 Initial Release. So we would
be referring to the Upgrade Instructions for Sitecore 6.5 Initial Release. The link for that is as follows:
http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/Update/6_5_0_rev_110602.as
px
The Config file update section in that is as follows:

Sitecore Endeavor

27 |
Page

Sitecore Version Upgrade Whitepaper 1.0

As we can see above there is a different link for each config entry and the ones that we need to choose is
based on from what version we moved to this version. In our case, we will need to go through all the links
and apply all the changes mentioned there.
But say for example, if we were upgrading to Sitecore 6.5 Initial Release from 6.4.1 Initial Release, then
we had to apply the changes suggested in the first two links only, and we could do away with th e latter
two. And to verify that, we can open any one link of the latter two and check for a random config entry
it would be present in our current config also.

Doing the Configuration changes for version upgrades is a tough task, is there an easier way to
do that?
We can divide the Sitecore solutions in yet another two types:
1. Loosely-coupled Sitecore Solution: A Sitecore solution, where we add a new configuration file
for our case instead of changing the Sitecore Configuration files.
2. Tightly-coupled Sitecore Solution: Changing the Sitecore Configuration files (say Web.config, or
Commands.Config etc)
When configuring a Sitecore Solution, its always a best practice create own configuration file for the
required settings, instead of updating the Sitecore Configuration files. Say, creating a SiteDefinition.config
for a new site that is added, instead of adding a site tag in the web.config and creating a custom index
configuration and definition file, instead of changing the current DefaultConfiguration file or index files.
Benefit of a loosely-coupled solution from Sitecore Version Upgrade perspective:
We can directly replace the current configuration file with that in the Target Version
If in case we have missed doing so in our current solution, not to worry, we can do so in upcoming Sitecore
projects.
Also, for now, we can work a little smart and avoid doing config changes for each and every environment
manually. How?
Steps:
Create Visual Studio Publish Profiles for various environments.
Sitecore Endeavor

28 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Install SlowCheetah XML Transforms and create the Transforms for all the config files No need
to do it manually, there is a nice Marketplace module available by Chris Le es Sitecore Upgrade
Automation. Use it and make the required changes.
Apply the config changes that are needed as per the Sitecore Upgrade links.
Once we build our solution all the changes would be available for the files of rest of the
environments too.

We have an Expert Solution but not all items are synced. The Templates, System and Layouts are
fully synced but Content and Media Library on Live Content Authoring Server has many items
then in my Repository. What can we do?
Generally, thats the approach that most of us follow for all of our projects. For a development team, what
is most important is Templates, Sublayouts and System (if we have written some rules etc.). As far as
Content and Media Library is concerned, we just put the main items (say homepage item of site, settings
item of a site, etc) and a few items to unit test our test cases. Otherwise, the complete site specific content
i.e. Content and Media Library is on our Live Content Authoring Server.
So we have a few options that we can do:
1. Upgrade the Sitecore Solution the basic way:
Apply all the required upgrades from our current version till the target version just as if we have a basic
Sitecore Solution. This is the safest way of making sure that our required content and data is consistent
and we dont lose absolutely anything. But the disadvantage is the time taken yes, this would take a
longer time.
2. Bring all our items from Live Content Authoring to our Local environment before taking up
Upgrade:
Package all Content and Media Library items and bring it to our Local Environment or
Backup the Live Database and restore it in our Local environment.
Get it serialized using some Item synchronization tool TDS, Unicorn, Sitecore
Development Toolkit and commit it to our repository
Next, follow the steps for Sitecore Version Upgrade of an Expert Solution.
For the second case, we can even use the Sitecore Instance Comparer tool - Meerkat Compare Sitecore
instances over HTTP. This will give us the Update package with all the item changes and we can install this
update package in our local, synchronize the items and follow the Expert Solution upgrade steps.

While installing the Update package, my Sitecore instance suddenly crashed and I could not
download my Installation Log and Report. Can I get it from somewhere?
Yes, we can get it.
Sitecore stores all the files while upgrading at a location: website/temp/__UpgradeHistory Folder. All the
upgrades that we perform on our solution, it creates a specific directory in this folder and dumps all the
files. So from here, we can get the Log or Report files.

Sitecore Endeavor

29 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Learnings of our Team while performing Sitecore Version Upgrade:


These are the learnings which we had while upgrading our Sitecore Solution. Our solution had 650+ si tes
on the same instance, had a Dedicated Publishing Instance with 150GB+ Master DB, had 2 Publishing
Targets (i.e. 2 Web Databases) and 10 Content Delivery Servers. I believe the size of a Sitecore instance
doesnt matter, but what matters is how critical any Sitecore Solution is. So if you and your team have
some learnings while upgrading your Sitecore solutions and would like to share it with the community,
then you can always contact me.

Always install Upgrade package in FF Browser rather than IE

We somehow happened to find it while installing the Upgrade Package in our local environment. Without
going into much details of it, I would like to share an article written by Kiran Patil, which explains it fully
http://sitecorebasics.wordpress.com/2012/02/26/browser-timeout-error-while-doing-sitecore-versionupgrade/

Change the values of DefaultSQLTimeout and DataProviderTimeout.

By default, these two settings are set to 5 minutes, and they are not present in the Web.Config file. But,
we can add them, in case we want to override them, and set it to something greater than that.
Lets understand why this is required. Sitecore Version Upgrade consists of two main things the
Database Upgrade Scripts and Installing the Upgrade Package.
Applying the Upgrade scripts is never a problem, because we are directly working on the Database with
Database Management System (i.e. say SQL Management Studio in case of SQL Database).
But, while installing the upgrade package, it is a continuous database activity from Application to the
Database. And the time required to install the upgrade package, could be relatively dependent to our
database size or change of some critical items and hence take long time to complete for us it took some
Hours!
We tried without changing this setting and the Sitecore instance gave us SQL Timeout while executing the
package, but after changing these settings, it worked fine for us. Some details about what these settings
would do they define how long the .Net Code will wait, before it declares that the SQL query has timed
out. These settings, would allow some heavy queries to be executed successfully instead of been claimed
as time out.
To override these settings, please add the following in the <settings> section in Web.Config File:
<setting name=DefaultSQLTimeout value=00:30:00/>
<setting name=DataProviderTimeout value=00:30:00/>

If you are upgrading your Sitecore solution, do keep at least one of your older versions up
and running.

We as a team, had marked this point as Highly Important. We absolutely must have at least one old version
running either in our Development Environment or somewhere, so that at any point of time we can
directly compare after upgrading our Sitecore Solution to the target version. This is not just useful for our
QA Team to test for it, but even for our own unit testing.
Sitecore Endeavor

30 |
Page

Sitecore Version Upgrade Whitepaper 1.0


Say there are some deprecated functionalities, and some newly added ones, or some replaced by some
others which may affect your Business needs, say just like Sitecore with its Sitecore 6.4.1 version, replaced
Telerik RAD by Telerik RTE, which had many changes, and even though RTE had many added
functionalities, It was missing out some of our Core Requirements, which we had to plug-in to it, with help
from Sitecore and Telerik.

Sometimes, if you get an error related to the Database Schema, dont worry, just proceed
to your Target Version. To confirm, ask Sitecore Support.

It happened so in our case, while we were upgrading once. We contacted Sitecore Support, and we got a
great response from them. For more details on it please refer to the following article:
http://varunvns.wordpress.com/2012/06/12/error-while-applying-upgrade-invalid-column-namesequence/. In our local development box, we can take a risk of moving ahead with our next intermediate
version or the target version. But it is good to consult Sitecore Support, with what we faced, just to
confirm it.

Do you have some Jumbled JSON seen on your Browser page in Page Editor Mode?

Please check this article my John West for the solution: http://www.sitecore.net/Community/TechnicalBlogs/John-West-Sitecore-Blog/Posts/2011/06/Sitecore-Page-Editor-Renders-Jumbled-JSON-asContent.aspx

Shrink Databases and Rebuild the Indexes from the Management Studio to have a faster
operation.

This was particularly very helpful for our case. We had Master Database as big as 25GB in our local
environment and in our Live Environment, the Master DB was 150GB+. Also, we had found that our
Databases were running with full recovery mode.

Due to this, the LDF file grew high as big as 7GB. Our DBA suggested, to shrink the Database LDF files
and rebuild the Indexes and then start with the Upgrade process. In our local, we had took statistics and
found that there was a difference of around 25 minutes. And hence we decided to go ahead with that.
Why Shrink & Rebuild your Databases Indexes? Shrink so that you dont have a heavy LDF files, and
all/most of your data is in MDF & Rebuild Index so that the indexes are in perfect order and the database
transactions for upgrade process would be performed faster.

Sitecore Endeavor

31 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Preserve Analysis and Installation Logs & Reports

Always Analyze and then Install the upgrade package, and make sure you save all these Log Files. If in case
we run into issues, these files could be very handy say to read and identify or to provide to Sitecore
Support if the criticality of the condition be.

We run into some issue after upgrade Google it out or raise with Sitecore Support

The Sitecore community is strong and many share some really great information on their blogs or raise
issues on Forum or with Sitecore Support. So in case we run into some random & weird issue, first thing
would be to search on the web. Most of the time, if someone else encountered it, it could be on the SDN
Forum and someone might have provided its solution, or we might get a link to the Sitecore Knowledge
Base or some Blog of a Sitecore Enthusiast. In case we dont find anything, its quite critical fir us and cant
wait for it to get solved, we should consult Sitecore Support. Otherwise, we can raise on SDN Forum too.

Create an Upgrade team (IT Infrastructure Team, Developers & QA) to discuss various
scenarios from their perspectives.

Each team member have their own perspective, and their own domain of working. So discussing things
with them on multiple intervals during upgrade is quite vital.

Perform Bug Bash for every environment and make sure every Bug is resolved and then
we move to the environment ahead.

Bug Bash is a very necessary step, as every user Developer, Content Author, Administrator, QA, and
Subeditor has his/her own perspective of working and checking things. So after upgrading our
environment, once our unit testing is over, we must perform Bug Bash, mention the bugs found at a
central location say Google Doc solve them, deploy the fixes on that environment, unit test them again
and only then move to the next environment.

Document the Approach and Full Steps of Upgrade and discuss with the Upgrade Team

It is a must that we document things the approach as well as the steps of upgrade, what needs to be
done when and how. Next, we must discuss these steps with the Upgrade Team members and get it
verified update the document as necessary. Keep on updating this document on regular intervals so that
we have a complete set of learnings till we reach the Live Environment. For the live environment, divide
the Upgrade tasks upgrading the Main Content Authoring Server, other Content Authoring Servers or
Publishing Instance, the Content Delivery Servers and their sub-tasks in sub teams of the main Upgrade
Team, to work it out in parallel to spend most time testing instead of upgrading.

References:

http://varunvns.wordpress.com/2012/06/06/basics-of-sitecore-version-upgrade/
http://varunvns.wordpress.com/2012/06/18/some-findings-while-sitecore-version-upgrade/
http://varunvns.wordpress.com/2012/06/12/error-while-applying-upgrade-invalid-columnname-sequence/
http://www.nonlinearcreations.com/Digital/how-we-think/articles/2014/05/Sitecore-UpgradeTips.aspx

Sitecore Endeavor

32 |
Page

Sitecore Version Upgrade Whitepaper 1.0

Tools that can be useful:

Sitecore History Viewer:


https://marketplace.sitecore.net/Modules/Sitecore_History_Viewer.aspx
Sitecore Instances Comparer: http://coreblimey.azurewebsites.net/meerkat-compare-sitecoreinstances-over-http/
Sitecore Upgrade Automation:
https://marketplace.sitecore.net/Modules/Sitecore_Upgrade_Automation.aspx

Sitecore Endeavor

33 |
Page

Das könnte Ihnen auch gefallen