我在TeamCity中通过构建一个sql项目来创建一个DacPac。生成的DacPac有一个后期部署脚本,我希望在部署时或在使用版本号创建之前更新脚本。是否可以在TeamCity中或在部署DacPac中设置此参数?在DacPac中发布部署参数
的sqlpackage.exe命令行看起来像
C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /Action:Publish /Sourcefile:#{SourceFolder} /TargetDatabaseName:DBName /TargetServerName:#{SqlServer}
其中 “#{}” 是章鱼参数部署服务器。在SQL项目的后期部署脚本的样子:
declare @version varchar(10)
set @version = 'z'
IF EXISTS (SELECT * FROM tVersion)
UPDATE VersionTable SET Version = @version
ELSE
INSERT INTO VersionTable VALUES (@version)
的路上我一直在做的是通过使用TeamCity的文件内容替换替换“Z”有版本号,但这种方法是不理想的。如果另一个开发人员使用与文件内容替换器构建功能中使用的正则表达式不匹配的其他参数检查文件,这可能会导致将来出现错误。
嗨版, 感谢您的建议,我使用sqlpackage.exe如问题陈述。我将给出SQLCMD变量的路由,第二个选项是我最大的问题是如何打开dacpac并编辑post部署文件。手动编辑文件到.zip然后编辑postdeploy.sql很简单,但使用章鱼部署似乎会更困难。澄清: “v:variable_name =”如果我把它放在我的sqlpackage中,exe命令行它会改变部署的变量? 再次感谢! 亚当 –
是的,这是正确的/ v:variable_name =值:) –
谢谢埃德。这很好。 –