SharePoint 2010 to SharePoint 2013/2016/2019 Migration Steps (Database attach method)

Are you looking to migrate from an older SharePoint on-premises version to a newer version of SharePoint on-premises? You can do this by using the database upgrade approach.

In this SharePoint migration tutorial, we will discuss how to migrate from SharePoint 2010 to SharePoint 2013, 2016, or 2019 using the database upgrade approach (without using any third-party tools).

There are also some paid third-party tools available to perform the migration, but we will focus on the free database upgrade approach.

SharePoint 2010 to SharePoint 2013/2016/2019 Migration Steps

Primarily, I will focus on migrating from SharePoint 2010 to newer versions here. You will learn how to manually migrate content from the old SharePoint server to the new server using the database content DB Migration.

Here are a few scenarios:

  • SharePoint 2010 to SharePoint 2013 migration
  • SharePoint 2010 to SharePoint 2016 migration
  • SharePoint 2010 to SharePoint 2019 migration

There are two ways we can migrate from older versions of SharePoint to the newer version.

  • Using third-party tools like Metalogix or Sharegate
  • Using the SharePoint database upgrade approach

In the database upgrade approach, we can migrate from one version to the immediate next version.

Meaning, we can migrate from SharePoint 2010 to SharePoint 2013, but we cannot directly migrate from SharePoint 2010 to SharePoint 2016.

To migrate from SharePoint 2010 to SharePoint 2016, we must first migrate from SharePoint 2010 to SharePoint 2013 and then from SharePoint 2013 to SharePoint 2016.

However, almost all third-party SharePoint migration tools offer direct migrations from one version to another.

SharePoint 2010 to SharePoint 2013 Migration Steps

Below are the steps to migrate content from SharePoint 2010 to SharePoint 2013 by using the database upgrade approach.

  1. First, update your SharePoint 2010 farm with the latest service packs/patches.
sharepoint 2010 to sharepoint 2013 migration
  1. Then, change your SharePoint 2010 web applications from classic mode to claims authentication.
sharepoint 2010 to sharepoint 2016 migration
  1. Delete unused site collection, orphaned user, and sites (optional). You can follow this link below to delete unused files.
  1. Configure the SharePoint 2013 server on your Machine, create a Web Application, and activate all required features for migration.
  1. Next, Backup and Restore SharePoint 2010 Content Databases to SharePoint 2013 SQL Server: 

Backup SharePoint Content Database: To back up the SharePoint content database, follow the steps below.

sharepoint 2010 to 2013 migration database attach

Restore SharePoint Content Database: Follow the steps below to restore the SharePoint content database.

sharepoint 2010 to 2013 migration approach
  1. Verify the Content Databases with Test-SPContent Database by using the below PowerShell command. It will help you to find issues such as solution dependencies, wide lists, missing features, orphaned sites, etc.
Test-SPContentDatabase -Name <Database name> -WebApplication <Web-App-URL>
  1. Next, address all issues you have identified on this screen. Fix it one by one till zero error is found. Below is the screenshot for your reference.
sharepoint 2010 to 2013 migration database attach
  1. Next, remove the default content database that was already created on your SharePoint 2013 server during configuration.
  1. Next, mount the Content database in SharePoint 2013 Server by using the following command. Remember: Always mount the root site collection’s database first! Also, if you are migrating My sites, Migrate My Site Host First!
Mount-SPContentDatabase -name "Database name" -DatabaseServer "Database Server Name" -WebApplication "Web-App-URL" -confirm: $false

Once the content database is successfully mounted to the web application, the site collection becomes accessible in SharePoint 2010 mode.

  1. Next, upgrade Site Collections to move to SharePoint 2013. By default, after migrating from SharePoint 2010 to SharePoint 2013, all migrated site collections will be on SharePoint 2010 format, retaining their old look and feel and other functionalities. We’ve to migrate all site collections to SharePoint 2013 explicitly.

Site collection administrators can do this by clicking links from the upgrade reminder banner.

To upgrade the site, please navigate to the path below.

(Central Admin >> Upgrade and Migration >> Check upgrade status)

  1. Next, after a few minutes, an upgrade status screen will appear, allowing you to view the status of your upgrade.
sharepoint 2010 to sharepoint 2019 migration
  1. At the same time, if you open your site, then you will get many errors as shown in the screenshot below.
sharepoint 2010 to 2013 migration database attach
  1. Once the upgrade is done, open your site collection, and again it will ask you to change the Hive folder to 15. It means that your site collection is still pending for upgrade. Click the button to start the upgrade.
sharepoint 2010 to sharepoint 2016 migration
  1. Once your upgrade has been completed, you will get a confirmation message as shown in the image below.
sharepoint 2010 to sharepoint 2013 migration
  1. Next, refresh your site collection and check that the site’s User Interface will look like the SharePoint 2013 View.

These are the whole steps for migrating the SharePoint 2010 site to a SharePoint 2013 Site.

Please follow the same steps for migrating a SharePoint 2013 site to SharePoint 2016 and SharePoint 2019.

If you have any Visual Studio solutions, you can first upgrade them and then deploy your WSP file to the targeted site.

In the same way, you can also map the master page paths.

Check out The database engine instance you selected is not valid for this edition of reporting services

Important Points to Remember For Migration

Here are a few key points to remember for a successful SharePoint migration.

  1. Check-in all SharePoint pages to avoid permission issues during migration
Upgrade-SPSite -identity http://hqinternetdev13/ -VersionUpgrade
  1. To activate the publishing feature, we need to run the following PowerShell script.
   Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
 
#Variables
$WebAppURL="http://hqinternetdev13/"
$SiteFeatureName = "PublishingSite"
$WebFeatureName = "PublishingWeb"
 
#Get all site collections of the web app and iterate through
$SiteColl= Get-SPSite -WebApplication $WebAppURL -Limit ALL
Foreach($Site in $SiteColl)
{
    write-host "Processing site collection:"$Site.URL -ForegroundColor Yellow
    #Check if publishing feature is already activated in the site
    $Feature = Get-SPFeature -Site $Site.URL | Where-object {$_.DisplayName -eq $SiteFeatureName}
 
    if($Feature -eq $null)
    {   
        #Enable the Publishing feature
        Enable-SPFeature -Identity $SiteFeatureName -url $Site.URL -Confirm:$False
    
        Write-host "Publishing Feature Activated on $($Site.URL)" -ForegroundColor Green   
    }
    else
    {
        Write-host "Publishing Feature is already Active on $($Site.URL)" -ForegroundColor Red
    }
 
    #Loop through each web in the site collection
    Foreach($Web in $Site.AllWebs)
    {
        write-host "Processing Web"$Web.URL -ForegroundColor Yellow
        #Check if publishing feature is already activated in the web
        $Feature = Get-SPFeature -Web $Web.URL | Where-object {$_.DisplayName -eq $WebFeatureName}
        if($Feature -eq $null)
        {   
            #Enable the Publishing feature
            Enable-SPFeature -Identity $WebFeatureName -url $Web.URL -Confirm:$False
    
            Write-host "Publishing Feature Activated on $($Web.URL)" -ForegroundColor Green   
        }
        else
        {
            Write-host "Publishing Feature is already Active on $($Web.URL)" -ForegroundColor Red
        }
    }
}
  1. Change the authentication type from classic to claim-based by using the below PowerShell script.
$WebAppName = "http://hqinternetdev13"
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()
$account = "EnjoySharePoint\spupgrade"
$account = (New-SPClaimsPrincipal -identity $account -identitytype 1).ToEncodedString()
$wa = get-SPWebApplication $WebAppName
$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"PSPolicy")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()
$wa.MigrateUsers($true)
$wa.ProvisionGlobally()
  1. Change Site Collection URL using the below script.
$site = Get-SPSite http://hqinternetdev16/sites/Departments1
$site.Rename("http://hqinternetdev16/sites/Departments ")
  1. You can use the below script for migration of subsite to the site collection in SharePoint
Add-PSSnapin Microsoft.SharePoint.PowerShell
$site =Get-SPSite "http://hqinternet19/sites/Departments"
$web = $site.RootWeb
$pweb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)
 
# This code (as an example) uses the first layout as the default.
$layouts = $pweb.GetAvailablePageLayouts()
$pweb.SetDefaultPageLayout($layouts[0], $false)
$pweb.Update()
$web.Dispose()

In this tutorial, I explain how to perform a smooth migration from SharePoint 2010 to SharePoint 2013, 2016, or 2019 using the database upgrade approach. Do let me know in the comments below if you face any issues.

You may also like:

  • >

    Build a High-Performance Project Management Site in SharePoint Online

    User registration Power Apps canvas app

    DOWNLOAD USER REGISTRATION POWER APPS CANVAS APP

    Download a fully functional Power Apps Canvas App (with Power Automate): User Registration App

    Power Platform Tutorial FREE PDF Download

    FREE Power Platform Tutorial PDF

    Download 135 Pages FREE PDF on Microsoft Power Platform Tutorial. Learn Now…