In this post I will describe how to migrate a site collection from SharePoint 2010 to SharePoint 2013 using a Sapiens.at solution. By using a Sapiens.at solution, I mean either one created from a Sapiens.at site template, such as the Employee Training Management, or using a Sapiens.at feature such as the Calendar E-Mail Extension, the List Filter Web Part or any other feature that is delivered with any of our SharePoint solutions.
Usually migrating a site collection from SharePoint 2010 to SharePoint 2013 is not a big thing. You just have to back up the content database from the SharePoint 2010 Farm’s SQL Server Instance, move it to the SP2013 Farm Database and restore the Content DB there. After that, you can attach the Content DB to the SP2013 Farm by using the Mount-SPContentDatabase command in SharePoint 2013 Management Shell. Now you can upgrade the individual site collections. http://technet.microsoft.com/en-us/sharepoint/fp142375.aspx
If you want to migrate a site collection that uses custom solutions there are more things to consider.
The new upgrade model allows site collection to continue to run in 2010 mode after upgrading and site collections have to be upgraded to 2013 mode individually. This means that SharePoint 2013 has a 14 (SharePoint 2010) and 15 (SharePoint 2013) root folder. This is where most of the solution files are placed, like layout files, site templates, features etc. (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\[SharePoint Internal Version])
If you use our setup to install one of our custom SharePoint solutions on your SharePoint 2013, the solution is only deployed to the 15 root folder. That means that they don’t work in 2010 mode, but this is important during the upgrade process. If the application files are not in the SharePoint 14 root folder the Mount-SPContentDatabase fails. If you check the migration logs in the SharePoint log folder you can see the reason. Possible errors are:
Found n web(s) using missing web template [template id] (lcid: [LCID]) with compatibility level 14 in ContentDatabase [Content DB]
Found a missing feature Id = [Feature ID], Name = [Feature Name], Description = [Feature Description], Install Location = [Feature Location]
So how do you deploy the solution files to the 14 root folder? Fortunately there is an easy way to achieve this. There is a new parameter called CompatibilityLevel available for the Install-SPSolution command in the SharePoint 2013 Management Shell. Possible values are 14, 15, New, Old, All and “14,15”.
So go to the farm solutions in central administration, retract the solution files of the Sapiens.at solutions and install them again using the SharePoint 2013 Management Sell.
Install-SPSolution -Identity “[Solution]” -CompatibilityLevel “14,15” -GACDeployment –AllWebApplications
The Employee Training Management for example requires the following solution files:
So retract all these solutions and use the following commands to reinstall them:
If you want to copy the script, hover over it and click on the view source button on the top right.
Install-SPSolution -Identity "Sapiens.at.SharePoint.ETM 15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment -AllWebApplications Install-SPSolution -Identity "Sapiens.at.SharePoint.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment Install-SPSolution -Identity "Sapiens.at.SharePoint.Settings.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment Install-SPSolution -Identity "Sapiens.at.SharePoint.Taxonomy.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment Install-SPSolution -Identity "Sapiens.at.SharePoint.ScriptLoader.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment -AllWebApplications Install-SPSolution -Identity "Sapiens.at.SharePoint.CalendarEmailExtension.wsp" -CompatibilityLevel "14,15" -GACDeployment -AllWebApplications Install-SPSolution -Identity "Sapiens.at.SharePoint.FormExtensions.wsp" -CompatibilityLevel "14,15" -GACDeployment –AllWebApplications
Install-SPSolution -Identity "Sapiens.at.SharePoint.ETM 15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment -AllWebApplications Install-SPSolution -Identity "Sapiens.at.SharePoint.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment Install-SPSolution -Identity "Sapiens.at.SharePoint.Settings.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment Install-SPSolution -Identity "Sapiens.at.SharePoint.Taxonomy.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment Install-SPSolution -Identity "Sapiens.at.SharePoint.ScriptLoader.15.0.wsp" -CompatibilityLevel "14,15" -GACDeployment -AllWebApplications Install-SPSolution -Identity "Sapiens.at.SharePoint.CalendarEmailExtension.wsp" -CompatibilityLevel "14,15" -GACDeployment -AllWebApplications Install-SPSolution -Identity "Sapiens.at.SharePoint.FormExtensions.wsp" -CompatibilityLevel "14,15" -GACDeployment –AllWebApplications
This deploys the solution files to the 14 and 15 root folder and the solution is now available in SharePoint 2010 and SharePoint 2013 mode.
After this, the Mount-SPContentDatabase command should complete successfully.
The upgrade of the content database is now completed, but the site collection is still in SharePoint 2010 mode. Now you have to upgrade the site collection. Just open the site collection and click on “Upgrade the site collection”.
If you can’t access the site collection despite having the required permission or even if you are site collection administrator you have to check the authentication of the web application.
In SharePoint 2013 Windows Classic authentication is obsolete and by default claims-based authentication is used. If the web application of the SharePoint 2010 sites is in classic-mode, and the restored site collections are now in a web application with claims-based web applications, users cannot access the site collection.
Here you can find more details about how to migrate from classic-mode to claims-based authentication: http://technet.microsoft.com/en-us/library/gg251985(office.15).aspx