【发布时间】:2014-05-08 18:45:24
【问题描述】:
我有一个带有 *.sqlproj 项目的 VS2013 解决方案,其中包含特定于此解决方案的对象。问题是这对于其他项目来说也是常见的数据库。
我的问题是在不影响其他对象的情况下自动将架构中的更改部署到数据库。默认情况下,DACPAC 会更新我不需要的整个数据库。
我尝试编写部署贡献者http://msdn.microsoft.com/en-us/library/dn268597(v=vs.103).aspx,但似乎无法将它放在解决方案文件夹中,因为它必须放在 SQL 服务器的 Program Files 子文件夹中。
我使用 Bamboo 创建部署包,应用程序托管在带有 Azure SQL 数据库的 Microsoft Azure 上。
有什么方法可以使用 DACPAC 或其他自动方式仅在我的架构中部署数据库更改?
【问题讨论】:
-
您最终如何部署 dacpac?您可以控制它还是从远程位置运行?我问是因为您可以将扩展 DLL 放在与 Dac DLL (Microsoft.Data.Tools.Schema.Sql.dll) 相同的目录中。因此,如果您可以包含这些和您的扩展并使用 SqlPackage 来创建可能有效的 dacpac?请注意,安装是在您的客户端计算机上的 SQL Server 目录中,因此如果您可以从那里运行,那么您部署到 Azure 的事实应该没有任何区别。
-
目前 dacpac 由部署团队执行。在他们的机器或构建服务器上进行系统范围的修改可能是不可能的,所以我正在寻找一种方法来引用我的解决方案文件夹中的贡献者 DLL 或其他方式来忽略 DACPAC 中的其他模式。
标签: sql-server azure-sql-database sql-server-data-tools dacpac