将数据库更改部署到防火墙环境

时间:2016-06-29 11:47:49

标签: sql-server deployment msbuild database-project

我们的情况如下:我们有一个开发环境(本地机器),我们针对LocalDB实例开发。我们的网络中还有一个拥有自己的测试数据库的测试环境。

当我们将(ASP.NET)应用程序部署到客户端时,我们使用TFS构建服务器生成我们发送给他们的Web部署包,以便他们可以在IIS的接受和生产环境中导入包。他们的IIS和数据库是防火墙(不幸的是bigcorp策略),所以我们不能使用MSDeploy直接将我们的代码从构建服务器推送到他们的环境。

起初我想过让SSMS生成更改脚本并将它们与部署包捆绑在一起以手动执行,但我找不到将它们自动包含在部署包中的方法(哪种方式破坏了这一点)有一个构建服务器)所以我们考虑使用我们可以构建的数据库项目,并为我们创建更改脚本,以及代码的部署包。

我对此有几个问题:

  1. 当我想部署到“离线”环境时,是否可以生成增量更改脚本?我该怎么做呢?这是不是意味着我需要与远程服务器建立数据库连接,以便将其与本地服务器进行比较?
  2. 如何找出改变了什么?它是否在构建过程中查看本地数据库(可能是测试数据库)以查看自上次以来发生了哪些变化?或者更改是否存储在项目本身中?
  3. 我是否仍然可以在SSMS中开发数据库更改,或者我是否需要在数据库项目中的Visual Studio中进行这些更改才能获取它们?
  4. 任何人都可以描述一个在我的设置中有效的工作流程并完成我正在尝试做的事情吗?

    也许不用说了,但我们将TFS 2013与Visual Studio 2013和SQL Server 2014一起使用。

1 个答案:

答案 0 :(得分:0)

  1. 是的,您可以使用VS中的数据库项目生成DACPAC来表示数据库。
  2. 在部署时,它会将DACPAC与目标数据库进行比较,并动态创建差异脚本
  3. 使用VS.我们一开始就持怀疑态度,但现在真的更喜欢它。
  4. http://www.dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/