我们在 Prem 上有 TFS 2018,我将其迁移到 Prem 上的 TFS2022,以便可以将其迁移到云上的 DevOps 服务。
尝试使用 Migrator 进行迁移时,我正在执行以下命令。
Migrator.exe Validate /collection:<collection URL> /tenantDomainName:<TenantDomainName> - Validates everything.
Migrator.exe prepare /collection:<collection URL> /tenantDomainName:<TenantDomainName> /Region:CUS - Creates import.json, identityMapLog.csv and other files.
然后我将使用 Azure DevOps Server 管理控制台分离收集数据库以进行迁移。
在下一步中,我将使用 sqlpackage.exe 创建 DacPac 文件
我登录到存储帐户,并创建了新容器,我想在其中上传 DacPac 文件。
我为新创建的容器创建了一个 SAS 密钥,并授予了列表和读取权限以及 SAS 密钥的 6 个月有效期。
更新了 import.json 以包含 DacPac 文件的名称、使用 sas url 的 DacPac 文件位置、目标组织和导入类型 = DryRun。
我将 DacPac 文件、import.json 和 Identitymaplog.csv 上传到存储帐户中的容器。
运行命令
Migrator.exe import /importfile:<local path to import.json>\import.json
那时我得到:
错误 VS403247:无法访问位置“https://.blob.core.windows.net/”错误。
任何解决此问题的帮助都将受到高度赞赏。几周来我一直被这个错误困扰,不知道该怎么办。
我尝试直接在浏览器中使用 SAS URL,起初我得到 签名不匹配。使用的签名字符串是 rl 错误。 然后我将
&comp=list&resttype=container
添加到 sas url,它会在浏览器中列出该文件夹的内容。
要生成用于导入的 SAS 令牌,请根据 doc,
- 仅选择 Read 和 List 作为 SAS 令牌的权限。
- 设置到期时间不超过未来 7 天
- 仅限制对 Azure DevOps 服务 IP 的访问。
- 将 SAS 令牌放置在安全位置。
当我仅为 SAS 令牌选择默认读取权限时,我收到与您相同的错误。确保您选择 Read 和 List 作为权限。
复制完整的 Blob SAS URL 并将其粘贴到
Location
中的 import.json
。
运行
Migrator import /importFile:{location of import specification file}
,效果很好。