我在Visual Studio 2013中有一个SSDT数据库项目。在将数据库更新发布到其他环境中的数据库时,它用作“答案表”。我最近遇到Jamie Thompson's blog article on DacPacs,在那里他写了一篇关于DacPacs以及如何使用它们的精彩摘要。
现在,我说有以下情况:
根据Jamie的说法,使用DacPacs发布数据库更改是幂等的,即我可以将子弹1中的SSDT项目中的DacPac发布到子弹3中的数据库,它将在1.0版本中对数据库进行所有更改。 .32和1.033,因为DacPac包含有关整个数据库架构的信息(然后还应包括在版本1.0.32中完成的更改)。
这是对正确发布DacPac的正确理解吗?
答案 0 :(得分:2)
是的,一旦您以声明方式在DACPAC中定义了模型,就可以使用任何版本的数据库将模型部署到任何目标环境。 引擎将根据目标自动生成正确的更改脚本。
您可以使用SqlPackage.exe实用程序从Visual Studio或命令行部署(发布)模型。这是使用SqlPackage.exe和发布配置文件的PowerShell脚本的示例。您可以选择直接发布或生成更改脚本(设置$ action变量)。 DACPAC文件和发布配置文件必须位于ps文件的同一文件夹中。将生成一个日志文件:
let imageView = UIImageView(image: inputImageDelegate!)
let contentSize = self.scrollView.contentSize // convenience
imageView.frame = CGRect(x: 0, y: 0, width: contentSize.width, height: contentSize.height)
...