我使用以下内容:
本地开发桌面
Windows 7企业版
Visual Studio 2015 Professional与更新2
适用于Visual Studio 2015的SSDT
远程数据库服务器:
Windows Server 2012
SQL Server 2012
Jenkins CI桌面服务器:
Windows 7企业版
詹金斯v1.580.1
适用于Visual Studio 2015的SSDT
我已经创建了一个SQL数据库项目。我正在尝试让Jenkins构建并将其部署到我的集成测试服务器。
构建正在运行,但部署不是。
我创建了一个执行Windows批处理命令构建步骤,其中包含以下详细信息:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130\sqlpackage.exe"
/a:publish
/sf:.\ddu.dev.cg\bin\Debug\ddu.dev.cg.dacpac
/pr:.\ddu.dev.cg\ddu.sit.publish.xml
当我运行构建时,我在控制台输出中得到以下内容:
Publishing to database 'xxxx' on server 'xxxx'.
Initializing deployment (Start)
Initializing deployment (Failed)
*** Could not deploy package.
Unable to connect to master or target server 'xxxx'. You must have a user with the same password in master or target server 'xxxx'.
我使用this文章来帮助我,但是这使用了Windows身份验证,我需要使用SQL身份验证,因为我的远程数据库服务器位于与Jenkins服务器不同的物理域中(让我们使用没有进入...)
我做了以下事情:
答案 0 :(得分:1)
与TeamCity遇到同样的问题,存储的配置文件不会保留密码,只需将密码作为参数传递:/ TargetPassword:p @ ssw0rd
答案 1 :(得分:0)
我们遇到了类似的问题,发现它与不同版本的DAC服务(SqlPackage),目标数据库和Visual Studio中SSDT项目中规定的目标平台有关。
看起来您正在使用带有目标database beeing SQL Server 2012
的SQL Server 2016(../130 / ..)的sqlpackage版本。
因此,您可以尝试使用/ 110 /文件夹下的dacpackage(对于SQL Server 2012),并确保您拥有正确的目标平台。 或者您可以向发布命令
添加parameter: AllowIncompatiblePlatform (/p: AllowIncompatiblePlatform=true
)