Sharepoint 2010: Moving lists with lookups to another site or site collection
My company recently implemented Sharepoint 2010 and we have been building it out to get ready for production. Initially for testing, I created an internal IT site to get the hang of Sharepoint as well as to use its capabilities. During this time, I created a new custom list with some lookups to some other lists. Everything was working great until I realized I now needed to move this list into our production IT site. Turns out there is no built in way to export a list and retain its lookup information.
When I just exported the list, it renders as blank fields for the lookup columns. I can’t just lose this data… it’s nearly 1,000 entries of hand entered information. There needed to be some other way. So I went to searching the Internet and came across several other people scratching their heads with this same dilemma. The reason why it doesn’t retain the information is that each and every list (and other Sharepoint objects) are referenced behind the scenes by their unique GUID. This GUID gets changed when importing an identical list into a new site to prevent any unique constraint violations.
So at this point I’m thinking that I just need to change the GUID that is referencing the old list to the new GUID. Trick is… how do you do that?
Well, I came across this excellent post that describes doing exactly that… by using Sharepoint Manager 2010. I followed along with the post to make the changes, but I had one crucial issue… I could not save from SPM2010 at all. SPM2010 is a free tool and not supported by Microsoft. I did look around to understand why I cannot save, but was unsuccessful. So, I needed to find another way to modify that GUID information.
One of the other ways I became aware of dealing with exporting lists with lookup information was to export the list as a template… this blog post describes it wonderfully, but when I followed the instructions for exporting my list, it did not work. To verify that it was working for me at all, I followed his exact instruction, and it did work. What was unique about my situation? Well, I was moving my list from a site within my site collection to the root of that collection rather than to a different site collection.
The first blog post using SPM2010 illustrates that to move lists within a site collection, you need to modify the LookupList ID as well as the LookupWebId which is the parent site where the lookup list is located. So when I exported my list as a template and edited the Manifest.xml file, I changed both of the ID’s and had success.
I wanted to write about this experience because it caused me many hours of frustration and I hope that it will assist someone else out there if moving lists around from within a single site collection.