May 8, 2020

Am a keen follower of Microsoft's SharePoint Blog and proud to provide this direct from the Microsoft Tech Community:

When upgrading a Content DB from Sharepoint 2016 to Sharepoint 2019 fails with following error message

Microsoft.SharePoint.Upgrade.SPUpgradeException: An extension defined in the database is not registered with the farm.   

 

at Microsoft.SharePoint.Administration.SPContentDatabaseExtensionValidator.LogAndThrowIfNotSubset(IEnumerable`1 farmExtensionTypes, SPContentDatabaseExtensionCollection databaseExtensions)   

 

at Microsoft.SharePoint.Administration.SPContentDatabaseExtensionValidator.VerifyDatabaseCompatibility(SPContentDatabase database)   

 

at Microsoft.SharePoint.Administration.SPContentDatabaseCollection.Add(SPContentDatabase database, Boolean provision, Guid webApplicationLockId, Int32 addFlags)   

 

at Microsoft.SharePoint.Administration.SPContentDatabaseCollection.Add(Guid newDatabaseId, String strDatabaseServer, String strDatabaseName, String strDatabaseUsername, String strDatabasePassword, String strDatabaseFailOverServer, Int32 warningSiteCount, Int32 maximumSiteCount, Int32 status, Boolean provision, Guid lockId, Int32 addFlags)   

 

at Microsoft.SharePoint.Administration.SPWebApplication.AddContentDatabase(SPWebApplication application, String strDatabaseServer, String strDatabase, String strDatabaseUser, String strDatabasePassword, String strDatabaseFailOverServer, Int32 cSiteWarning, Int32 cSiteLimit, Boolean bAssignDatabaseId, Int32 iAddFlags)   

 

at Microsoft.SharePoint.PowerShell.SPCmdletNewContentDatabase.InternalProcessRecord()   

 

at Microsoft.SharePoint.PowerShell.SPCmdlet.ProcessRecord()

 

The ULS Log clearly shows 

 

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopbd

Medium

Ensuring farm m_extensions.

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopbe

Medium

Ensuring database m_extensions.

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopa1

Verbose

m_extensions is already initialized

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopa1

Verbose

m_extensions is already initialized

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopbi

High

The m_extensions of the database were not a subset of the m_extensions of the farm.

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopbk

High

farm extension: System.RuntimeType

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopa1

Verbose

m_extensions is already initialized

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopbl

High

database extension: Microsoft.SharePoint.Administration.SPGlobalExtension, value 16.0.6.0, latestVersion 16.0.8.0

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopbl

High

database extension: Microsoft.Office.Project.Server.Database.Extension.ProjectDatabaseExtension, value 16.1.310.0, latestVersion 17.0.288.0

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aopa1

Verbose

m_extensions is already initialized

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aq4ea

Medium

Calling extension method for SPGlobalExtension on object SPContentDatabase Name=SP19_Content.

PowerShell.exe (0x2478)

0x2EFC

SharePoint Foundation

Database Extensions

aq4ea

Medium

Calling extension method for ProjectDatabaseExtension on object SPContentDatabase Name=SP19_Content.

 

Compare the extensions registered and we can see project extension is missing.  here is how you can compare. 

$contentservice=[Microsoft.sharepoint.Administration.SPwebservice]::ContentService

$contentservice.RegisteredDatabaseExtensionTypes >>SP2016Farm_registered_Extn.txt

 

$contentservice=[Microsoft.sharepoint.Administration.SPwebservice]::ContentService

$contentservice.RegisteredDatabaseExtensionTypes >>SP2019Farm_registered_Extn.txt

 

 

Resolution:

Execute the following to register the missing extension

$svc = [Microsoft.SharePoint.Administration.SPWebService]::ContentService

[System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.Office.Project.Server.Database.Extension”) | FL

$svc.RegisteredDatabaseExtensionTypes.EnsureAdded([Microsoft.Office.Project.Server.Database.Extension.ProjectDatabaseExtension])

$svc.Update($true)

The above is kindly provided by the Microsoft Tech Community!

You May Also Like…