【问题标题】:TFS Collection Migration from 2010 to 2012从 2010 年到 2012 年的 TFS 集合迁移
【发布时间】:2014-09-25 00:00:12
【问题描述】:

我有两个 TFS 服务器。一个是旧版 TFS2010 服务器,其中包含我们项目的旧集合。去年,我们启动了一个新的 TFS2012 服务器。但是,我们从未从旧服务器迁移源代码(我们将其视为全新安装并创建了新项目)。

我们现在正在考虑完全停用 2010 服务器,我想将旧版 2010 集合(实际上我关心的只是源代码控制和历史记录)作为单独的集合迁移到新服务器,但我想不通出如何。我已按照 MSDN (http://msdn.microsoft.com/en-us/library/vstudio/dd936138.aspx) 上的说明进行操作,但是当我执行将集合附加到新服务器上的步骤时,TFS 抱怨在 sql 服务器上“未找到可附加的数据库”。

我还尝试在目标 TFS 服务器上运行“tfsconfig Collection /attach”命令(尽管我阅读的许多帖子都说它在 2012 年已被弃用)。它告诉我它无法连接到目标数据库服务器(即使我的生产集合已附加到该盒子上)。

有谁知道从 2010 年到 2012 年的收藏迁移是否可能,或者我只是在旋转我的轮子?我找不到任何来自 Microsoft 的官方文档表明这种迁移甚至是可能的(尽管我也找不到任何反驳它的东西)

服务器规格:

  • 旧版 SQL Server:Enterprise 64 位 2008 SP3 (10.0.5500)
  • 新 SQL Server:企业 64 位 2008R2 SP2 (10.50.4000)
  • 旧 TFS 服务器:10.0.40219.1 (SP1 KB2182621)
  • 新的 TFS 服务器:11.0.60315.1(TFS2012 更新 2)

【问题讨论】:

    标签: tfs tfs-migration


    【解决方案1】:

    您可以迁移单个集合。我知道的工作步骤是:

    • 使用 TFS 管理控制台从 2010 实例中分离集合
    • 备份数据库(或从 SQL 中分离)
    • 恢复数据库新 SQL 实例(或复制文件并从 SQL 附加它们)——检查与现有数据库名称不冲突
    • 从 2012 TFS 管理控制台附加集合

    最后一步将启动升级过程:在过程完成之前,集合将不可用。这可能需要几分钟或几小时,具体取决于大小,并确保您有足够的空间用于 SQL 事务日志。

    【讨论】:

    • 这些是我遵循的步骤。在最后一个,它告诉我没有找到可附加的数据库。当我恢复数据库时,我给它起了一个不同的名称,因为新服务器上已经有一个同名的数据库,但除此之外,我什么都照本宣科。
    • 检查恢复的数据库和扩展属性的权限,我的意思是在 SQL 级别。授予与该实例上的其他数据库相同的权限。 TFS 使用 SQL 扩展属性来标记他的 DB,检查是否与源相同。
    • 您确定已停止并分离数据库吗?大多数情况下,此错误来自仅复制数据库而没有停止收集。
    • 是的。我停止了收集,然后将数据库备份/恢复到新服务器。
    • 检查数据库属性让我朝着正确的方向前进。我认为这与数据库的逻辑文件名有关。由于我已经在新的 TFS 服务器上有一个名为“DefaultCollection”的集合,因此我不得不重命名我正在导入的集合。当我将数据库恢复到新服务器时,我给它命名为“Tfs_LegacyCollection”,但没有更改逻辑名称(它仍然从我备份它的位置命名为“Tfs_DefaultCollection”。重命名逻辑名称后,TFS识别数据库,我能够导入。感谢您的帮助。
    【解决方案2】:

    看看Team Foundation Server Integration Tools (March 2012 Release):http://visualstudiogallery.msdn.microsoft.com/eb77e739-c98c-4e36-9ead-fa115b27fefe

    TFS 集成工具是团队开发的一个项目 Foundation Server (TFS) 产品组和 Visual Studio ALM Rangers 将 Team Foundation Server 与第三方系统集成 用于数据的迁移和同步。

    【讨论】:

    • 我已经看过了,这将是我的最后一个结果。看起来您一次只能迁移一个项目。我们有大约 75 个。
    【解决方案3】:

    这里有 TFS 2010 到 TFS 2012 的迁移指南:https://upgradetfs2010totfs2012.codeplex.com/

    在某些情况下可能会更快,具体取决于需要移动的项目的大小(和数量),首先将最新代码导入现有的 2012 版本,因为您只关心移动源代码.但是,您确实会丢失历史记录。

    【讨论】:

    • 我会看一下指南,看看它是否有用。谢谢。不幸的是,我需要历史。正如您所提到的,当我们创建新服务器时,我们通过导入最新代码来添加项目。我们当时没有尝试迁移的原因是因为我们想改变我们的源代码控制结构(从基于项目到基于环境)。这丢失了我们项目的所有历史记录,因此我们不得不为此保留旧服务器。
    • 升级路径在这种情况下不起作用,迁移/集成工具可能会根据项目的大小起作用,我从来没有运气,但那是多次迭代之前的结果
    【解决方案4】:

    按照 Team Foundation Server 升级指南中所述,从 Microsoft ALM Rangers (http://vsarupgradeguide.codeplex.com/) 执行就地迁移,然后将集合迁移到新服务器。从 2010 年到 2012 年,这是一个非常简单的迁移。 在进行就地迁移之前,不要忘记备份数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多