TeamCity SQL部署

时间:2016-09-08 21:21:13

标签: sql-server msbuild teamcity

我按照http://blogs.adatis.co.uk/jonathon%20eveoconnor/post/Using-TeamCity-to-Automate-Building-and-Deployment-of-Database-Projects的指南设置了SQL版本并从TeamCity发布。

构建步骤很有效,但在发布方面我很困难。我已按照以下步骤进行设置,与指南中的内容相符,但我收到了错误。

  

步骤2/2:发布(MSBuild)(2s)

     
    

[Step 2/2] KAInternal \ KAInternal.sqlproj.teamcity:构建目标:发布

         
      

[KAInternal \ KAInternal.sqlproj.teamcity] SqlPublish

             
        

[SqlPublish] SqlPublishTask

                 
          

[SqlPublishTask] C:\ TeamCity \ buildAgent \ work \ 1472f1322571ddd \ KAInternal \ bin \ Debug \ KAInternal.sqlproj.publish.sql错误Deploy72002:无法连接到主服务器或目标服务器' KAInternal'。您必须在主服务器或目标服务器中拥有具有相同密码的用户' KAInternal'。           [步骤2/2]步骤发布(MSBuild)失败

        
      
    
  

我已经搜索了一下,但是每个人似乎都相信这是源计算机上的权限问题,我的发布配置文件正在使用内置的" sa"要发布的SQL Server帐户(目前主要是为了反驳这一理论)。

以下是发布配置文件XML:

<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
  <IncludeCompositeObjects>True</IncludeCompositeObjects>
  <TargetDatabaseName>KAInternal</TargetDatabaseName>
  <DeployScriptFileName>Staging_KAInternal.sql</DeployScriptFileName>
  <TargetConnectionString>Data Source=192.168.194.6;Persist Security Info=False;User ID=sa;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True</TargetConnectionString>
  <BlockOnPossibleDataLoss>True</BlockOnPossibleDataLoss>
  <ExcludeLogins>True</ExcludeLogins>
  <IgnoreRoleMembership>True</IgnoreRoleMembership>
  <ExcludeUsers>True</ExcludeUsers>
  <ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>

TeamCity中的发布步骤

Publish Config

希望有人能指出我正确的方向,先谢谢。

1 个答案:

答案 0 :(得分:0)

您所关注的指南介绍了为部署创建单独的proj文件,但在这里您使用的是sqlproj文件。实际上有一个sqlproj文件的msbuild发布目标,所以我不确定这是否是你的故意偏差。

可能是sqlproj构建任务不接受密码作为msbuild属性的情况。您可以通过在发布配置文件中的连接字符串中指定密码来测试这是否是问题。

另外,我建议您确保使用最新版本的SSDT和DACFx。有关最新版本和下载链接的信息,请访问SSDT团队博客:https://blogs.msdn.microsoft.com/ssdt/