部署数据库项目而不了解目标数据库

时间:2013-04-10 07:02:09

标签: .net continuous-integration database-project continuous-deployment database-deployment

我有一个问题。我习惯使用Teamcity + Database项目,该项目能够将数据库部署到所有DTAP服务器。我喜欢它的工作方式 - 它允许我在2分钟内每周部署到生产中。

现在我在一家公司工作,在这家公司,部署过程涉及BATCH脚本和一堆更改脚本。然后是一个表,它跟踪应用于数据库的哪些更改脚本,并基于更新数据库。

我建议使用具有特定部署配置的Database项目,但问题在于:我们不允许访问Acceptance和Production服务器。由于我们无法连接到那些,我们无法部署到那些服务器,NOR使用数据库项目生成的sql脚本,因为我们无法定义目标数据库。

当然 - 我们可以获得生产的备份,把它放在某处并创建脚本,但这不是很方便。

我的问题是:有没有一种优雅的方法来解决这个项目,并使用我不知道的DB项目的一些选项创建一个DB脚本而不必知道目标DB(IF可能一直存在?),或者只是BS,我们无权访问这些服务器,我们是否应该专注于说服他们允许我们访问?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以生成dacpac并将其从SSMS或使用sqlpackage.exe命令行部署到目标数据库。

http://msdn.microsoft.com/en-us/library/ee210546.aspx

这会在部署时动态生成部署脚本。

出于兴趣,您有什么动机使用数据库项目部署来支持现有的批处理脚本流程?