我们在工作中使用数据库项目以及部署到生产服务器,我们当前的流程是使用保存的.scmp文件手动运行比较,该文件将数据库项目与生产数据库进行比较(使用read-只登录),然后生成我们提供给IT的SQL脚本支持人们继续生产。我们还做了一个构建来生成我们的部署后脚本,并且我们将这个脚本提供给我们的人也可以运行。
我正在尝试尽可能多地自动化此过程(以减少出错的可能性并提高效率)。我想知道是否有办法使用.scmp文件中的预定义选项自动生成sql更改脚本。
此外,是否有一种简单的方法可以自动将部署后脚本附加到架构更改脚本的末尾,因此他只需要运行一个sql文件?
也许有一种很好的方法可以使用powershell或其他东西来完成整个事情。
答案 0 :(得分:3)
好的,你应该做的是使用sqlpackage.exe从构建ssdt项目生成的dacpac创建脚本。
创建一个批处理脚本来调用它或使其成为CI过程的一部分。
要过滤输出,有一些新选项,例如在ssdt的最新版本(2015年3月)中排除某些类型,或使用类似的部署过滤器:
http://agilesqlclub.codeplex.com如果您需要更多灵活性。
使用此功能,您可以像比较一样过滤部署,也可以预先/附加前/后部署脚本,这样您就可以一举两得! 编