如何在 Azure DevOps Server 到服务的迁移步骤中识别初始目录(收集数据库的名称)?

How do I identify the Initial Catalog(name of the collection database) in a migrating step of Azure DevOps Server to Services?

我是组织中 Azure DevOps Server 2019 Update 1.1 的管理员。 我会将我们的集合从本地服务器迁移到 Azure DevOps 服务。 目前,我正在使用 SqlPackage.exe 生成 DACPAC 文件。 https://docs.microsoft.com/en-us/azure/devops/migrate/migration-import?view=azure-devops

根据这个参考,生成DACPAC的命令示例如下。

SqlPackage.exe /sourceconnectionstring:"Data Source=localhost;Initial Catalog=Foo;Integrated Security=True" /targetFile:C:\DACPAC\Foo.dacpac /action:extract /p:ExtractAllTableData=true /p:IgnoreUserLoginMappings=true /p:IgnorePermissions=true /p:Storage=Memory

但是,我不明白什么是Initial Catalog。 参考说 Initial Catalog - Name of the collection database. 但是我在Azure DevOps Server管理控制台中找不到采集数据库的名称。

我在 dev.to
上引用了另一篇文章 https://dev.to/timothymcgrath/the-great-azure-devops-migration-part-6-import-2obc
通过这篇文章,Initial Catalog=[COLLECTION_NAME], 我的 Azure DevOps Server 中的集合名称是 "DefaultCollection"(默认名称)。

然后,我尝试了以下命令,但失败了。

C:\Program Files (x86)\Microsoft Visual Studio17\SQL\Common7\IDE\Extensions\Microsoft\SQLDB\DAC0> ./SqlPackage.exe /sourceconnectionstring:”Data Source=localhost;Initial Catalog=DefaultCollection;Integrated Security=True” /targetFile:C:\DefaultCollection.dacpac /action:extract /p:ExtractAllTableData=true /p:IgnoreUserLoginMappings=true /p:IgnorePermissions=true /p:Storage=Memory
Connecting to database 'DefaultCollection' on server 'localhost'.
Extracting schema
Extracting schema from database
*** Error extracting database:Could not connect to database server.

(provider: Named Pipes Provider, error: 40

这个错误是不是初始目录错误导致的?
如何找到正确的初始目录 - 收集数据库的名称?

环境和先决条件

查看应用层上的管理控制台。这会向您显示所有数据库。

不管怎样,默认收集数据库的标准名称是 Tfs_DefaultCollection。您的情况可能有所不同,但这是一个安全的选择。

已解决。 案例中的数据库名称是"AzureDevOps_DefaultCollection"。 Azure DevOps 管理控制台在选择附加功能中可以找到它。 (应用层 -> 团队项目集合) 或者,通过使用 SQL Server Management Studio,我们还可以找到 "AzureDevOps_DefaultCollection".

而且,就我而言,DataSource=localhost 是错误的,DataSource=<hostname>\SQLEXPRESS 是正确的。 当我通过 SQL Server Management Studio 连接到我的数据库时,我注意到了这个答案。 终于成功生成了DACPAC文件

Connecting to database 'AzureDevOps_DefaultCollection' on server '<my machine host name>\SQLEXPRESS'.
Extracting schema
Extracting schema from database
Resolving references in schema model
Validating schema model for data package
Validating schema
Exporting data from database
Exporting data
Processing Export.
Processing Table '[dbo].[tbl_PropertyValue]'.
Processing Table '[Task].[tbl_LibraryItemString]'.
...
...
...
Processing Table '[Search].[tbl_FileMetadataStore]'.
Processing Table '[dbo].[SequenceIds]'.
Successfully extracted database and saved it to file 'C:\DACPAC\DefaultCollection.dacpac'.

非常感谢!马里奥·迪特纳 (Mario Dietner)、丹尼尔·曼 (Daniel Mann)。