0

我有一个 VS2015 数据库项目(sqlproj),我创建了很多测试数据。我在 PostDeploymentScript.sql 文件中添加了一个参数,当我需要一个空数据库时,我将其设置为 false,并且在发布时它不包含测试数据。当我需要一个演示数据库时,我将其设置为 true,当我发布时,它还会在部署后添加测试数据。

另一方面,我想创建两个不同的 DACPAC 文件以防止手动过程并同时自动构建它们。我搜索了一下,发现了几篇这样的文章: http ://www.techrepublic.com/blog/data-center/auto-deploy-and-version-your-sql-server-database-with-ssdt/ 但我无法应用他所说的话。我错过了什么?

我创建了一个(几乎)空的数据库项目(比如说 Base.sqlproj),它在部署后添加了查找表数据。我创建了另一个数据库项目 (Base_Plus_TestData.sqlproj) 并为第一个数据库添加了数据库引用。

我需要的是,如果客户需要部署空数据库,我想给他们 Base.DACPAC。如果客户需要部署一个带有测试数据的演示数据库,我想给他们 Base_Plus_TestData.DACPAC。

为此我应该怎么做,我做错了什么?

4

1 回答 1

1

对于您已经使用包含数据的开关所做的操作,有几个额外的选项,我会选择第一个:)

1 - 只需在部署数据库后为想要演示数据的客户提供一个脚本即可运行(您可以执行类似使用 powershell 脚本/.net 应用程序来部署数据和可选数据的操作)

2 - 可以在 dacpac 中编辑部署后脚本,您可以构建项目,复制 dacpac,然后编辑部署后脚本以将您的数据包含在其中一个 dacpac 中。

3 - 创建一个单独的 ssdt 项目,该项目使用“相同的数据库”引用和额外的部署后脚本引用您的主数据库项目 - 当您构建时,您将获得两个 dacpac,如果您需要数据或只是数据库,您可以一起部署。

如果您的原始 dacpac 中还有数据要部署,则需要将其复制到“带有数据”的 dacpac 中。

埃德

于 2017-01-19T21:16:05.370 回答