SharePoint 2007 – SharePoint 2010 Upgrade Definition File (UDF)

As part of the upgrade planning using DB attach method, we can define Upgrade Definition File (UDF) which will transform the file definition or features to be activated/depreciated upon upgrading SharePoint 2007 database to SharePoint 2010 web application.

You might have custom site definition in sharepoint 2007, and you’d like to do some actions/transformation upon upgrading sharepoint 2007 to sharepoint 2010 such as changing file mapping, activating new site/web features, etc. this is where UDF file comes in handy to help us how we’d like to upgrade sharepoint 2007 site.

You can get more reference on UDF based on the following article:

https://www.sharepointjoel.com/Lists/Posts/Post.aspx?List=0cd1a63d%2D183c%2D4fc2%2D8320%2Dba5369008acb&ID=309

What’s a good sample UDF? You can find from the existing SharePoint 2010 UDF file in C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\UPGRADE\ folder. You’ll be able to see a lot UDF file samples.

Some of the explanation on the above definition

File : Describes the relationship between an existing provisioned file to its equivalent file for upgrading to Microsoft SharePoint Foundation 2010, specifying how setup paths of files in the previous version map (relate) to setup paths in the new version relative to their %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE directories.

AppliedWebFeatures Element: Supplies a list of Web site Features to be marked as "provisioned" for Web sites created in Microsoft SharePoint Foundation 2010. For example, an announcements list template of the previous version must be mapped (related) to its equivalent announcements Feature in the new version.

You can find more details on this upgrade definition file schema on the following reference

Upgrade Definition Schema

https://msdn.microsoft.com/en-us/library/ms412955.aspx

a sample Upgrade log taken from C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS will look something like this

[powershell] [SPXmlConfiguration] [DEBUG] [9/29/2011 7:38:06 AM]: Template upgrade: ContentDB version of LITWARE.Sample.Products#0: 3.0.0.3

[powershell] [SPXmlConfiguration] [DEBUG] [9/29/2011 7:38:06 AM]: Template upgrade: onet.xml version of LITWARE.Sample.Products#0: 4.0.0.3

[powershell] [SPXmlConfiguration] [DEBUG] [9/29/2011 7:38:06 AM]: Template upgrade: <WebTemplate> for LITWARE.Sample.Products#0 supports the range of versions from 3.0.0.1 to 3.0.0.3.

[powershell] [SPXmlConfiguration] [DEBUG] [9/29/2011 7:38:06 AM]: Template upgrade: Upgrade XML: <WebTemplate ID="10001" LocaleId="*" FromProductVersion="3" BeginFromSchemaVersion="1" EndFromSchemaVersion="3" ToSchemaVersion="3" />

[powershell] [SPUpgradeSession] [DEBUG] [9/29/2011 7:38:06 AM]: NeedsUpgrade [Products - %LCID%1033 - %GTID%_GLOBAL_#10001 - %TMPLID%LITWARE.S...] returned: True.

[powershell] [SPUpgradeSession] [DEBUG] [9/29/2011 7:38:06 AM]: Upgrading [Products - %LCID%1033 - %GTID%_GLOBAL_#10001 - %TMPLID%LITWARE.S...].

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Saving lock and quota...

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: 0 sites properties saved.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Turning off lock and quota...

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Determining the set of root webs/site collections to upgrade.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Upgrading the root webs/site collections for 'LITWARE.Sample.Products#0' template: WebTemplateVersion=3.0.0.3, TargetWebTemplateVersion=4.0.0.3, Language=1033.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: No RemoveSiteExternalSecurityProvider flag specified.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template Upgrade: Creating the @UpgradeSetupPathMapper table.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template Upgrade: Creating the @UpgradeListMapper table.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Determining the set of webs to upgrade.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Applying the global template to all webs that require it.

  [powershell] [SPContentDatabaseSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Calling get SchemaVersion on Database spoint2010_litware5l, Status = Upgrading.

[powershell] [SPContentDatabaseSequence2] [DEBUG] [9/29/2011 7:38:06 AM]: Calling get SchemaVersion on Database spoint2010_litware5l, Status = Upgrading.

[powershell] [SPUpgradeSession] [DEBUG] [9/29/2011 7:38:06 AM]: IsBackwardsCompatible [SPContentDatabase Name=spoint2010_litware5l] returned: True.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Applying the global template to the web with URL "https://intranet.contoso.com/sites/Litware5".

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Ensure Global Template: Skipping global template application for site with URL "https://intranet.contoso.com/sites/Litware5". A master page gallery already exists at "/sites/Litware5/_catalogs/masterpage" and the UserInfo list already exists.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Generating the file upgrade query.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Generating the list upgrade query.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Begin running the template upgrade query.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: End running the template upgrade query.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Activating site-collection-scoped features...

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:06 AM]: Template LITWARE.Sample.Products#0: Activating feature b50e3104-6812-424f-a011-cc90e6327318 in site collection with URL "https://intranet.contoso.com/sites/Litware5", force=False.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:08 AM]: Template LITWARE.Sample.Products#0: Activating feature 3bae86a2-776d-499d-9db8-fa4cdc7884f8 in site collection with URL "https://intranet.contoso.com/sites/Litware5", force=False.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:13 AM]: Template LITWARE.Sample.Products#0: Activating feature 0af5989a-3aea-4519-8ab0-85d91abe39ff in site collection with URL "https://intranet.contoso.com/sites/Litware5", force=False.

[powershell] [SPWebTemplateSequence] [DEBUG] [9/29/2011 7:38:15 AM]: Template LITWARE.Sample.Products#0: Empty <WebFeatures> section in upgrade template, skipping SPWeb scoped feature activation.

That’s a log from sample UDF file that I made for my custom site definition. In this sample, I’d like to activate some new features when I upgrade my sharepoint 2007 site which is based on my custom site definition. Some of the new features that I’d like to activate when I upgrade to sharepoint 2010 will be like preparing new master page so that it’s ready when I’m planning to switch to V4 UI version, etc.

This UDF file can be made to match our new site definition in SharePoint 2010.