Skip to main content

Export/Import Managed Metadata from one farm to another?

Managed metadata terms and termsets each have a unique guid. If you take a backup of a site that is using managed metadata in some columns and restore this site into another environment, the guids don't match up. You will have to go through and re click each term and "wire it back up" so it's okay and doesn't show in red text.


The easiest way to MOVE the managed metadata service application from one environment to the other. That way you can ensure that the GUIDs of terms and termsets match.


Powershell for Export:

$mmsAppId= "App ID Guid Placeholder"

$mmsproxy = Get-SPServiceApplicationProxy -Identity "Proxy ID Guid Placeholder"

Export-SPMetadataWebServicePartitionData -Identity $mmsAppId -ServiceProxy $mmsproxy -Path "Path to save Exported file placeholder"


App ID Guid Placeholder:
Navigate to Central Admin > Application Management > Manage Service Applications > Managed Metadata Service Application


Copy the GUID from the browser.


Proxy ID Guid Placeholder:

Navigate to Central Admin > Application Management > Manage Service Applications > Managed Metadata Service Application Connection
Right click in the dialog and capture the appid


The Import Process:

Make sure that the exported backup file is copied physically into the server that hosts SQL Server and make sure that it is accessible from the WFE where the PowerShell script is executed. Otherwise copy the file into SQL server then use network shared path in the script.(For Ex: \\MyDBServer\Temp\MMS.bak)

Execute the below PowerShell commands.

$mmsAppId= "App ID Guid Placeholder"
$mmsproxy = Get-SPServiceApplicationProxy -Identity "Proxy ID Guid Placeholder"
Import-SPMetadataWebServicePartitionData -Identity $mmsAppId -ServiceProxy $mmsproxy -Path "Exported file’s path placeholder" -OverwriteExisting;

Comments

Popular posts from this blog

How to get SPUser or SPGroup from Person or Group field

You have person or group field in SharePoint list and you want to programmatically get the user or person. The below code to gets SPUser from User or Group field in the list when multiple choice and Groups are not allowed in the field: //get SPUser SPFieldUser userField = (SPFieldUser)item.Fields.GetField("Users"); SPFieldUserValue userFieldValue = (SPFieldUserValue)userField.GetFieldValue(item["Users"].ToString()); SPUser user = userFieldValue.User; This part of code would help you to get SPUser when multiple choice is allowed and groups are not allowed: //Multiple choices are allowed SPFieldUser userField = (SPFieldUser)item.Fields.GetField("Users"); SPFieldUserValueCollection userFieldValueCollection = (SPFieldUserValueCollection)userField.GetFieldValue(item["Users"].ToString()); foreach (SPFieldUserValue userFieldValue in userFieldValueCollection) {     Console.WriteLine("     " + userFieldValue.User.LoginName); } And when group...

SharePoint publishing page scheduling

In SharePoint 2010 publishing enabled team site collection is not showing schedule button in publish ribbon. Solution: Here is how to enable it  though the UI: Locate the SharePoint Server Web site on which you want to enable content approval and item scheduling. Click  Site Actions , click  Site Settings , and then click  Modify Pages Library Settings . Under  General Settings , click  Versioning Settings . Click  Yes  next to  Content Approval , and then click  OK . Click  Manage item scheduling .   Click to enable the  Enable scheduling of items in this list  check box, and then click  OK .

Changing Content Type Hub URL

Change the Hub URL through powershell by using: Set-SPMetadataServiceApplication -Identity " " -HubURI " " For Ex: Set-SPMetadataServiceApplication -Identity "Managed Metadata Service" -HubURI "http://contenttype.Domain.Com" When you try to do this you get this rather scary message: This is SharePoint telling you that this is a major thing so be careful! Essentially all your content types that you have published out will be removed if they can, and you have to republish all of your content types out again which can cause some issue.