Unofficial Sitecore Migration Guide
Upgrading from Sitecore 5.3 rev 071114 to Sitecore 6
Step One: Install Sitecore 6
Screen shots of installation below.
Must be SQL 2005 or 2005 Express Database
Attempt to launch http://sitecore6/sitecore if you receive the error below then do the following: remove and then add the sitecore sql user to the Sitecore 6 databases as dbowner.
Databases:
{web site name}Sitecore_Core
{web site name}Sitecore_Master
{web site name}Sitecore_Web
Switch to the Advanced view, select Desktop, click the Hide Warning button. The username is Admin and the password is b.
Attempt to launch http://sitecore6, if you've done everything right you will see the screen below.
Ok if you've made it this far you now have a clean installation of Sitecore v6.
Step Two: Grant Access
Grant "Network Service" and "Internet Guest Account" Full Control rights to the Sitecore 6 web root within C:\inetpub\wwwroot if that's where you choose to install Sitecore 6.
Step Three: Make a backup copy of the original Sitecore 6 root folder
Just in case you need to revert back to an original file, make a copy of the Sitecore 6 web site root folder.
Step Four: Install updates to Sitecore 6
Download Sitecore 6.0.0 Update rev. 080912.zip which fixes Sitecore's problem with .NET 3.0 SP1. (Or download the lastest update which contains the fixes for all previous updates)
Install the update package and overwrite all when prompted.
To verify that is was install successfully check the version of Sitecore.Client.dll in the bin directory of the web site. It should say 6.0.0 rev. 080912 if it doesn't then the update wasn't installed.
Step Five: Install upgrade prerequisite packages
Download the Database Conversion tool and extract the contents which should give you two zip files: Sitecore Update Installation Wizard-2.0.0 rev. 080730.zip and V6DBConversionTool-1.0.0rev080923.zip
Install Sitecore Update Installation Wizard-2.0.0 rev. 080730.zip first and overwrite all when prompted. To verify that this update was successful verify that a Sitecore.Update.dll file exists in the bin directory of the web site.
Now install V6DBConversionTool-1.0.0rev080923.zip and overwrite all when prompted. To verify that this update was successful look in the sitecore/admin/ folder within the website root there should be a folder called upgrade with three folders in it and then additional files within those folders.
Step Six: Copy security template files
Copy the "security templates.xml" in the old Sitecore installation from /sitecore/shell and copy it to the new Sitecore 6 installation into /sitecore/shell.
Step Seven: Modify connectionstrings.config file
Open up App_Config/ConnectionStrings.config and rename the master connection string to v6_master. Then add connection strings to the Sitecore 5.3 databases except for the web database. Oh and the core database string for the 5.3 connections should be named v53_core. Example of a fully modified file is below.
<add
name="core"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore\SQLEXPRESS;Database=SitecoreSixSitecore_Core" />
<add
name="v6_master"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore\SQLEXPRESS;Database=SitecoreSixSitecore_Master" />
<add
name="web"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore\SQLEXPRESS;Database=SitecoreSixSitecore_Web" />
<add
name="master"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore;Database=sc531071114Master" />
<add
name="security"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore;Database=sc531071114Security" />
<add
name="extranet"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore;Database=sc531071114Extranet" />
<add
name="v53_core"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore;Database=sc531071114Core" />
<add
name="recyclebin"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore;Database=sc531071114RecycleBin" />
<add
name="archive"
connectionString="user id=sitecore;password=***;Data Source=bc-sitecore;Database=sc531071114Archive" />
Step Eight: Copy some include files
Copy the .include files in /sitecore/admin/upgrade/IncludeFiles to /App_Config/Include and rename the name.config.disabled files to name.config. Each include with the .config extension will be upgraded those with the .disabled extension will not be upgraded. So only rename those databases that you want to upgrade. To verify that Sitecore picked up all the databases, log into Sitecore and click on the database button in the lower right hand corner of the console, you should see all of them you add appear.
Step Nine: Pray that the conversion wizard works
First you'll need to go into IIS and grant anonymous access rights to the /sitecore/admin folder/
Then browse to http://{sitecoreurl}/sitecore/admin/upgrade/main.aspx. Go through the wizard and choose to automatically do the conversion process. And eventually you'll hit the "Start Conversion" button. If you were successful, depending on the size of your databases (my core and master were around 4GB), 1 hour later you will see:
If you were unsuccessful you may see the error below. This was a fairly easy fix for me. I was trying to convert a SQL 2000 database but since sys.objects doesn't exist in SQL 2000 I had to upgrade them to SQL 2005 and then run the conversion again. After doing that it was successful.
2652 14:15:52 ERROR Failed to upgrade the database
Exception: System.Data.SqlClient.SqlException
Message: Invalid object name 'sys.objects'.
Source: .Net SqlClient Data Provider
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteScalar()
at Sitecore.V6DBConversion.SqlServerDatabaseConverter.ExecuteScalar(String cs, String sql)
at Sitecore.V6DBConversion.SqlServerDatabaseConverter.Convert(SqlServerDataProvider provider, IOutput output)
Great, you've made it this far, now only a few more hours of waiting.
Step Ten: Rebuild some Sitecore databases
First let's clean up the databases by rebuilding the link database for the Core and Master databases. Then rebuild the search indexes on the Core and Quick Search options.
Step Eleven: Republish entire site
Go to the Home section and then the Publish option and Publish site. This is where you wait for a few hours while Sitecore copies data out of the master database to the new Web database. Don't screw with anything else just let it run and depending on the size a few hours later it will say successful. If not, start it again and do an incremental publish so you don't have to republish everything.
Step Twelve: Remove some old upgrade files
Remove and I do mean remove all the .config files within the /App_Config/Include folder. If you just copy them to another folder within that folder you'll get errors, so just get rid of them completely.
In the /App_Config/ConnectionString.config file get rid of all entries except the Core, Web and Master strings.
Delete the /sitecore/admin/upgrade folder
If a /sitecore/admin/packages/tool folder exists, delete that too, I didn't have one so I didn't need to delete it.
Delete the following files if you have them
- /sitecore/admin/upgrade.aspx, mine was named update.aspx
- /sitecore/admin/web.config
- /bin/sitecore.diffinstaller.dll, I didn't have this file
- /bin/DiffLib.dll, I didn't have this one either
- /bin/Sitecore.Upgrade.dll, mine was named Sitecore.Update.dll
- /bin/Sitecore.V6DBConversion.dll
Take offline and a few weeks later get rid of the security, extranet, archive and recyclebin and possibly the v6 master database from SQL.
Step Thirteen: Restore the clean web.config
You should have a copy of the clean v6 web.config file, copy that file to the new v6 web site root and replace the one that's already in there.
Step Fourteen: Copy custom files to the new v6 root
Copy your custom files from the v5.3 root to the v6 root
- Layouts
- Images
- Xsl
- Media
- Css
- Any other folders that are in your site that don't exist in the v6 site that are needed
Compile your solution against the new Sitecore dlls and copy the dll to the bin folder of the v6 site
Merge any web.config customizations from the v5.3 config file to the v6 config file, possibly app settings or ajax stuff.
Step Fifteen: Test, Test and Test
Test the site.