Hello Sitecore Lovers!
We recently upgraded our Sitecore Solution from 6.3.1 rev. 110113 to 6.4.1. rev 120113 (Update-6). And in this post and some coming later I would like to share some basics, tips and findings that we had during this task.
Before we go into much details, I would like to apologize, as this one’s going to be a Theoretical Post. But actually, I can guarantee that its going to be very informative and useful for any version upgrade, plus it will be interesting!
Sitecore Verison Upgrade from a broader perspective looks as simple as executing some SQL Scripts on the Sitecore Databases and installing an Upgrade Package. But it becomes more critical as and when you move to its core. And actually, when you have multisite instance Sitecore Solution, (like the one in our case) it becomes one of the most critical and complex projects as even a small change can affect all the clients!
Now, lets move into the very fundamental details and basic questions which come in mind, when we talk about Sitecore Version Upgrade. Obviously, Sitecore has a very strong documentation, and I am going to refer to many of its links here, but just trying to make a job easy. Some very frequent questions that come up along with a small explanation are as follows:
- Sitecore Version Upgrade is a 1-step Process? Or we need to perform multiple steps for it?
Well, Sitecore Version Upgrade, is actually not a one-step process. Its is a set of steps that we need to perform. Also, may need to perform the same set of steps multiple times (recursively!) in case your current version does not match the pre-requisite version of your target version. Like in our case, we were on version 6.3.1 rev. 110113 and to move to 6.4.1 rev.120113 (Update-6), we first had to move to version 6.4.0 rev.101012 (Initial Release) first.
There is a nice website which can help you decide how many times you gotto execute the upgrade steps to move to your target version from your current version. Its here: http://sitecoreupdate.somee.com/
:) Nice one yea?
The general steps can be put up as follows (based on the Sitecore Version Upgrade Links):
- Decide the Target Sitecore Version that you want.
- Check if you have its pre-requisite version.
- Backup your Application and Database.
- Check which version you are currently on and what target version
- Execute the Pre-Install Database Script (SQL or Oracle, depends upon which Database System you use) if any.
- Install the Sitecore Upgrade Package.
- Execute the Post-Install Database Script if any.
- Check that your solution is working fine — Some level of regression testing.
- Make all the required changes to your custom code if it has stopped working, (also, even if its working, its better to build your solution again and deploy the latest build onto your Environment, but only after you test it throughly!).
- How do we understand which functionalities are added to which version of Sitecore?
As I said above, Sitecore has provided a very strong documentation. In one of its documents, called the Change Log, Sitecore has provided a complete list of functionalities added as well as deprecated in each version.
- Do we need to move to the recommended version of Sitecore? Or can we move to a more later version even if its not recommended by Sitecore?
Actually, you should move to the Sitecore’s Recommended Version. The reason behind this is they have thoroughly tested it, not only for a functional bugs but even for performance related issues and have fixed them. But then, there might be a case, that a version later to the recommended version could cover the functionality that you badly need or which might be the sole reason for you to upgrade your Sitecore Solution. Then, in this case, you can ask me as a comment here. I will try to answer it to the best of my knowledge. If can’t then will ask you to raise it with experts i.e. Sitecore Forums or Sitecore Support! :)
- Do we need to upgrade the CM and CD Environments together? Or can we do it as a 2-step process?
You can keep upgrade for your CM and CD environments as a 2-step process if the target version you are moving to do not have many Database related changes. Like say for example, you are moving from some Sitecore version 5.x to 6.x, there are massive Database changes, included the concept of EventQueue and some others too and its better that they are done on the same day, and that too in parallel.
And, even if you keep it as a2-step process, there won’t be a problem, first upgrade your CM Environment, test it, and then go ahead upgrading your CD Environment.
But make sure you do not publish anything until and unless you have upgraded both — the CM as well as CD environments and also, do not execute the Database Scripts on your Web Database until you are upgrading your CD Environment, as we do not know what can it lead to!
In case you think its critical in your case, drop me a comment here, I will try to find an answer for you. If can’t then will ask you to raise it with experts i.e. Sitecore Forums or Sitecore Support!
- What all is included in upgrading a CD Server Application? Do we have to execute the upgrade wizard on CD Server too?
Well, this was a question that pondered us a lot when we were in process of upgrading our Sitecore Solution. Even in Sitecore Upgrade docs, they have not mentioned what needs to be done to upgrade a CD Environment. The steps provided to upgrade in Sitecore Docs, are only for CM Environment, and hence it actually confuses us what about our CD Environment.
But, you know what, as far as upgrading a CD Server is concerned, it does not include any upgrade wizard to be executed or any upgrade package to be installed. If you know, CD environment does not have the complete Sitecore Folder, it has few files in them.
The upgrade package that you execute on CM Server, is mainly concerned with three things:
- Files in the Sitecore Folder (mainly in Sitecore/Shell which is not present on CD Server).
- Items in Core Database.
- Items in Master Database.
Now, files in Sitecore Folder are very few, and mostly not changed except the sitecore-version.xml and some few which you can directly take from your CM Server.
Also, for the item changes in Core and Master Database, you can publish them from your CM Server, so that the changes are available on your CD Env. That’s much easy then we thought it to be.. rite? :)
So the things that you need to do for upgrading your CD Environment are:
- Executing the Database Scripts — in the order from current version to the target version.
- Finally replacing all the files from your latest build — from your Development Repository (CI Server) where you have your latest build.
- What if we have multi-instance in CM environment? Do we have to execute upgrade package on both the instances?
Actually, I am unaware about this. :( But I would try to answer this question logically! As specified in the above question, the upgrade package that in executed on a CM Server, is mainly for three things:
- Files in Sitecore Folder
- Items in Core Database
- Items in Master Database
Now, if we have executed the upgrade package on one of the two CM Servers, then you have all these done,
You got the latest files in your Sitecore Folder, as well as your Databases are upgraded — latest items in your Core and Master Databases.
So technically, you do not need to execute the upgrade package on your second CM Server.
What you need to do, is copy all the files from your Upgraded CM Server to the other CM Server that is yet to be upgraded, and make the required changes — like web.config, scalabilitysettings.config and others if any!
Still, if you feel doubtful, drop me a comment here, I will try to find an answer for you. If can’t then will ask you to raise it with experts i.e. Sitecore Forums or Sitecore Support!
Well, this question only you can answer, based on the ones answered above. I would also like to provide you a link which can help you to decide whether you want to upgrade, whether you should upgrade, or you should continue using the same version that you are. Kiran Patil
has written this nice article on it, please have a look: http://sitecorebasics.wordpress.com/2011/03/05/sitecore-upgrade-decision/
So my lovely Sitecore Developers, hope you liked the article. Sorry for such a long one and thanks for reading it so patiently! :)
Happy Sitecore Upgrading! :)