How to move a List from SharePoint 2010 to SharePoint 2013

How to move a List from SharePoint 2010 to SharePoint 2013

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.

move a List from SharePoint 2010 to SharePoint 2013

FatalError: The version of the package 14.0.0.0 is different from the current version this program supports, 15.0.0.0.

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

  1. Fast & Cheap : “Dirty” export and import
  2. Fast & Clean : Third party solution
  3. 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.

  1. 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

  1. 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:


  1. Open the SystemData.XML file with an editor like NotePad++ and change the version from 14.0.0.0 to 15.0.0.0 , 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.

  2. 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.

  1. Change the extension from .cab to .cmp

  2. Copy the .cmp file back on the network share or directly on the SharePoint 2013 Server.
  3. 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

  4. 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.

  1. 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.

  1. Backup the Content Database of the Site Collection in which the list is. (SharePoint 2010)
  2. Create a Temporary Web Application in the SharePoint 2013 Farm.
  3. 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

  4. 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.
  5. In the SharePoint 2013 Management Shell, run the following command.

    Mount-SPContentDatabase MyDatabase -WebApplication http://sitename

  6. 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.
  7. Go in the Central Administration, go to Backup and Restore > Export a site or list. Choose your list, and click Start Export
  8. 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
  9. 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

tweet-this

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.

No ratings yet.

Please rate this

 
Comments

Excellent write-up Vlad I am sure this will help many others trying to do this.

I had good luck saving a 2010 list with 6,000+ items as a template with content. I then uploaded template to my 2013 site. I created a new list on 2013 site with that template. The list came came over perfectly with all data and views intact. Seems much quicker and easier than the content DB approach.

There is a 50MB limit on the size of templates. So, if there is content, it is not the way

Awesome writeup Vlad . really helps

Excellent one. Could I share 1st approach on my blog?

Sure, but please give credits :).

Nice writeup vlad. Great. it helps lot

You can also save the list as template with content and use it to create new list in SharePoint 2013

Rajendranmuthusamy

Excellent post! Thank you very much!!

MetaLogix Content Matrix now has a free version for up to 25 GB… no trial expiration license issues.

It was very help ful, tried with all the three options and was working fine.

This won the internet for me today.. Thanks a mil – great article.

Good article

thanks a lot you saved me a lot of time you are great 🙂

thanks for post. i have list 7.5 GB size. if i create cab file using cabpack, i received an error %80. I’ve tried a lot of times. I’ve always error. please help me. Is there an alternative cabpack

Hello,

I didn’t have any problems with it. Any program that can create cab files will be good!

Thanks,

Osvaldo Aluigi

Great post, te solution 3 work perfectly,
thks

Great Post! Thank you

I believe ShareGate’s trial software will randomly exclude data from the move/copy, so you can’t depend on it to move production data; you can only test with it, which of course is the point of trial software.

As for cost, well, ShareGate starts at about $2,000 with no data limits, but it is PER YEAR and PER SEAT!!! ANd that’s for ShareGate LITE; the full version is closer to $4k per year per person.

Dell (formerly Quest) charges per gigabyte. You can distribute the software to multiple people and not have to pay a per seat license. But when you run low on data capacity, you have to buy more.

So for us, we paid around $3500 for Quest for 150 gig, gave the software to a team of 3, and after three years we still had not existed the intitial 150 gig allocation, so it was a cheaper solution than Quest in the long run. But every shop may be different. If you have a big farm and move a lot of data, ShareGate may be the better choice.

When I use the .CMP file way all files in the list say it is created by the SP admin account. How can I make sure the correct “Created by” meta data is used when I import it in SP13?

The steps are absolutely clear, thankss

Thanks a ton, but I too need the “Created”, “Modified”, “Created by”, and “Modified by” metadata to carry over. I’m hoping the database approach works for that.

The easier option is to save the template list along with content, download on your local and then upload on the new sharepoint. This works, but can any one help me under stand the difference between this method and the method where we can export the list onto excel and the use the ‘Import Spreadsheet’ feature in sharepoint 2013.

SharePoint Fighter

Thanks a lot for your post! It just saved my life! 🙂

This methods works for attachments and workflow status in the list?

Hi,

Thanks for the wonderful post. Will it solve auto-numbering issues? I have a custom list with auto-numbering configured. Facing issues during migrating from SP 2010 to 2016. Any ideas to fix this?

Thanks for sharing! it just saved my life.

Really good info – but you don’t need the products. Windows has native expand and makecab functionality which you can do from the command line. You can wrap it all up in powershell and automate everything else. I have attached one of the diff files here because this ended up being the trickiest bit. (also saving the file as asci when outputting string from powershell)

;*** Sample Source Code MakeCAB Directive file example
;
.OPTION EXPLICIT ; Generate errors
.Set CabinetNameTemplate=env_register.cmp
.Set Cabinet=on
.Set Compress=ON
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
.Set DiskDirectory1=\\medtfs01\drop\SharePoint_source\SP_Lists\out
00000000.dat
00000001.dat
00000002.dat
00000003.dat
00000004.dat
00000005.dat
00000006.dat
ExportSettings.xml
LookupListMap.xml
Manifest.xml
Requirements.xml
RootObjectMap.xml
SystemData.xml
UserGroup.xml
ViewFormsList.xml
;***

Thanks for the trick Vlad !
I have a huge document library, which I exported thru CA. but this process generated around 170 .cmp files. like export1.cmp,export2.cmp and so on.
Do I need to change in all .cmp files?

It should be only in the first or last one! It’s been a while since I did it, but yeah first or last!

Leave a Reply