2用于测试和生产的独立DACPAC文件

时间:2017-01-19 19:42:16

标签: sql-server sql-server-data-tools database-project dacpac sqlproj

我有一个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),它在部署后添加了查找表数据。我创建了另一个DB项目(Base_Plus_TestData.sqlproj)并为第一个数据库添加了数据库引用。

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

我应该为此目的做些什么以及我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

1 - 在部署数据库之后,只需为想要演示数据的客户提供运行脚本(您可以使用PowerShell脚本/ .net应用程序来部署数据和可选的数据)

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

3 - 创建一个单独的ssdt项目,该项目使用"相同的数据库引用您的主数据库项目"参考和额外的帖子部署脚本 - 如果您需要数据或只是数据库,那么您将获得两个可以一起部署的dacpac。

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

Ed