I recently had a client ask me, how he could migrate only a list from SharePoint 2010 to SharePoint 2013 by keeping the data in it. I tried a quick Google, and nothing came up. I tried to export the list into a .cmp file, and import it into SharePoint 2013, but I got this Error. Importing SharePoint 2010 Files is not supported in SharePoint 2013.
FatalError: The version of the package 18.104.22.168 is different from the current version this program supports, 22.214.171.124.
After eliminating the easy option, I found three ways to move a list, each with its advantages and disadvantages. It basically resumes to this:
How to move a List from SharePoint 2010 to SharePoint 2013
- Fast & Cheap : “Dirty” export and import
- Fast & Clean : Third party solution
- Clean & Cheap: Content Database Import
1. Fast & Cheap — > Modify the .CMP file
This is the “dirty” method to make it work fast. What I mean by dirty, is that it isn’t supported by Microsoft officially since we will modify the .cmp file. Here is how to do it step by step.
- Export the list from SharePoint 2010 using either the Central Administration or PowerShell (Export-SPWeb). In the Central Administration, go to Backup and Restore > Export a site or list. Choose your list, and click Start Export
Copy the exported list (.cmp file) to your desktop and change the extension to .cab. You can then extract it using a software like WinRar. You will then have those files:
Open the SystemData.XML file with an editor like NotePad++ and change the version from 126.96.36.199 to 188.8.131.52 , and the build version from your 14.0.x.x to 15.0.x.x (depending on the build you have on both your farms). Here is a screenshot with before and after.
- Now we have to repackage it as a .cab file. I used a software called CabPack. Select your Source and Destination. Change the CabinetNameTemplate if you want, and click on OK.
Change the extension from .cab to .cmp
- Copy the .cmp file back on the network share or directly on the SharePoint 2013 Server.
Open SharePoint 2013 Management Shell as an administrator. Run this command by changing the parameters of course! Import-SPWeb -Identity http://teamsite.vlad.local/ -Path \\sp2010-itest\Exports\MyCusttomList.cmp -Verbose
Open up your SharePoint Site and your list should be thereJ.
2.Fast & Clean
The Fast and proper way to move a list is moving it with a third party tool. The advantage with the third party tools is that they are very simple, and they work well. The Downside, of course is that they are not freeJ. However, I am sure that if you only want to move a list, you can simply download a trial and get the work done. Here is the one I heard the most positive comments about.
- ShareGate >> They offer a 15 day free Trial.
3. Clean & Cheap
If you don’t want to buy a third party solution, the other “best practice” solution would be to create a new temporary web application, upgrade your content DB to SharePoint 2013, and then export the list. However, if you have a lot of customizations and development done on the site collection, this might really get messy.
- Backup the Content Database of the Site Collection in which the list is. (SharePoint 2010)
- Create a Temporary Web Application in the SharePoint 2013 Farm.
Run SharePoint 2013 Management Shell as an administrator, and run the following command to dismount the content database:
Get-SPContentDatabase -WebApplication http://sitename | Dismount-SPContentDatabase
- Restore the Backup you took in Step 1, on the SQL Instance hosting your SharePoint 2013 Farm. Make sure you give the farm account db_owner permissions on the database.
In the SharePoint 2013 Management Shell, run the following command.
Mount-SPContentDatabase MyDatabase -WebApplication http://sitename
- Navigate to the Site Collection, and if you didn’t have too many development and custom things done, it should open no problem. Make sure the list you want to export is ok.
- Go in the Central Administration, go to Backup and Restore > Export a site or list. Choose your list, and click Start Export
- Open SharePoint 2013 Management Shell as an administrator. Run this command by changing the parameters of course! Import-SPWeb -Identity http://teamsite.vlad.local/ -Path \\sp2010itest\Exports\MyCusttomList.cmp -Verbose
Open up your SharePoint Site and your list should be there J.
Important Information! If you used Site Columns in your list, by using method 1 or 3, your columns will be imported as list columns. If you still want to use Site Columns, you will have to migrate them as well, in order to keep the same GUID. I found this script by Phil Childs really interesting, and it worked with my test list. http://get-spscripts.com/2011/01/export-and-importcreate-site-columns-in.html
Those are three ways to get a list from SharePoint 2010 to SharePoint 2013. You choose which one fits you best!
Share this post with your followers on twitter by clicking this cool bird right under here
|Leave a comment and don’t forget to like the Absolute SharePoint Blog Page on Facebook and to follow me on Twitter here for the latest news and technical articles on SharePoint. I am also a Pluralsight author, and you can view all the courses I created on my author page.|