SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a solution on a development server with a custom list with Managed Metadata fields that reference Managed Metadata term sets (from the standard Managed Metadata Service (MMS)).

The term sets seem to get unique IDs when created in the MMS, the very same unique IDs that the custom list in the solution seem to bind to when connecting its Managed Metadata fields to the term sets available in the MMS. So far so good.

However, when performing a backup (through powershell, e.g. by using the Backup-SPSite command) and then doing a restore on a different server (Restore-SPSite cmd), the Managed Metadata term sets do not seem to follow. And if I recreate the term sets manually in the MMS on the new server, the term sets will have different IDs, thus the custom list from the backup on the new server will not recognize the connection and the solution fails...

I have tried several projects on codeplex to achieve this export/import of metadata, both to xml and cvs, but none of them seemed to work. ( didn't find the term store at all, whereas found the term store in our standalone development farm...but not in the actual environment where we need to use it).

Is there a better way to achieve export/import of both the site collection and the managed metadata term sets it references to a new environment, e.g. from dev to test?

share|improve this question

Have you tried the Export/Import Tool from Eric Khaw? I've used it with success. Should do about the same as the other tools out there though.

share|improve this answer

Powershell approach: you can try to export mms as cab file from source server and then import this cab file at the destination server, using powershell.

The powershell script for this is as under:

$mmsApplication = Get-SPServiceApplication | ? {$_.TypeName -eq "Managed Metadata Service"}
$mmsProxy = Get-SPServiceApplicationProxy | ? {$_.TypeName -eq "Managed Metadata Service Connection"}
Export-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceProxy $mmsProxy -Path "\\server\share\"

$mmsApplication = Get-SPServiceApplication | ? {$_.TypeName -eq "Managed Metadata Service"}
$mmsProxy = Get-SPServiceApplicationProxy | ? {$_.TypeName -eq "Managed Metadata Service Connection"}
Import-SPMetadataWebServicePartitionData $mmsApplication.Id -ServiceProxy $mmsProxy -Path "\\server\share\" -OverwriteExisting

Another alternate approach as given in this site:

Check whatever approach suites you.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.