我正在通过构建一个 sql 项目在 TeamCity 中创建一个 DacPac。生成的 DacPac 有一个部署后脚本,我想在部署时或在使用版本号创建它之前对其进行更新。是否可以在 TeamCity 中或在部署 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”替换为版本号,但这种方法并不理想。如果另一个开发人员使用不符合文件内容替换器构建功能中使用的正则表达式的不同参数签入文件,这可能会在未来导致错误。