TFS 2010 到 TFS 2013 升级错误

Posted

技术标签:

【中文标题】TFS 2010 到 TFS 2013 升级错误【英文标题】:TFS 2010 to TFS 2013 upgrade error 【发布时间】:2014-09-28 18:49:07 【问题描述】:

尝试将我的 TFS 从 2010 升级到 2013。将 SQL 数据库从 SQL 2008 升级到 SQL 2014(升级所需),然后卸载 TFS 2010。现在,当我尝试运行升级向导时,准备情况检查会给我以下错误:

TF400129:就绪检查出错:验证团队项目集合是否有空间用于新系统字段

TF400129:就绪检查出错:验证团队项目集合没有与新工作项系统字段冲突的字段

TF400927:以下团队项目集合处于分离状态:Broken Collection。托管数据库的 Sql Server:BABYLON。数据库名称:Tfs_DefaultCollection。

查看日志我发现了这个:

[错误@23:14:35.106] System.Data.SqlClient.SqlException (0x80131904):对象名称“dbo.Fields”无效。 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.MapException(SqlException ex,QueryExecutionState queryState) 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.HandleException(异常异常) 在 Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType,CommandBehavior 行为) 在 Microsoft.TeamFoundation.Admin.AdminSqlResourceComponent.ExecuteScalar(SqlQuery sqlQuery,SqlInfoMessageEventHandler infoMessageHandler) 在 Microsoft.TeamFoundation.Admin.SqlHandler.ExecuteScalar[T](ISqlConnectionInfo connectionInfo、SqlQuery sqlQuery、SqlInfoMessageEventHandler infoMessageHandler) 在 Microsoft.TeamFoundation.Admin.VerifyFieldLimitNotExceededInAllTpcs.Run(ActivityContext 上下文) 在 Microsoft.TeamFoundation.Admin.Engine.AdminNode.RunNode() 在 Microsoft.TeamFoundation.Admin.Engine.AdminNode.Run(String& message, Boolean& continueOnError)

有人知道我哪里出错了吗?

【问题讨论】:

【参考方案1】:

第一个错误 (TF400129) 表示您在一个 TFS 2010 集合中有太多工作项字段。 SQL Server 对表中可以拥有的列数有限制 (1024)。每次向 TFS 项目添加新字段时,都会向 WorkItemsAre/WorkItemsLatest/WorkItemsWere 表添加一个新列。您可以通过在 TFS 集合数据库中运行此 SQL 查询来检查我们现在拥有的列数:

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'WorkItemsAre'

TF400129 错误与第一个错误有关。这里发生的是在升级过程中 TFS 尝试添加几个新的系统字段。升级向导会检查您是否有足够的空间来添加它们(显然您没有,这就是您获得 TF400129 的原因),它还会检查现有字段名称是否与升级期间将添加的新系统字段不冲突。

关于 TF400927:您是否在卸载 TFS 2010 之前分离了集合?升级不需要这样做。

【讨论】:

升级前我没有分离任何东西。我会检查字段的数量,看看是不是这样。 我检查了数据库并运行了您的查询...它返回 44,所以它完全在 1024 的限制之内。还有其他想法吗?我开始认为此时我将不得不重新安装 2010。 :( 我查看了你得到的错误 - 你能检查你在集合数据库 (Tfs_DefaultCollection) 中有 Fields 表吗?如果这样做,请检查那里的行数:'select count(*) from Fields' 我认为这是检查集合中字段数的更好方法。【参考方案2】:

好的...所以我显然有一个损坏的集合,需要在进行升级之前分离和删除。这需要我重新安装 TFS2010,从我的备份中恢复,分离并删除有问题的集合,然后再次进行升级。

【讨论】:

以上是关于TFS 2010 到 TFS 2013 升级错误的主要内容,如果未能解决你的问题,请参考以下文章

如何将VSS 2005迁移到TFS 2015?

Visual Studio 2013 在 TFS 2010 上构建 - 构建问题

TFS 2010 构建控制器和构建代理可以在 Server 2012 上运行吗?

带有升级的 tfs 2010 视觉工作室 2012 想要下载上次升级时删除的 Deploy.wdproj

使用TFS 2010在Visual Studio 2012中进行代码审查

TFS 2008 - 2012 升级无法安装 SharePoint 扩展