TFS 2015 vNext版本从文件夹aganst databese执行SQL脚本

Did*_*iņš 1 tfsbuild tfs-2015

我需要创建集成检查版本,该版本还可以检查对数据库执行更新skripts时是否不会引发错误(Microsoft SQL Server 2008 R2)
我无法弄清楚如何执行从特定文件夹到测试数据库的所有SQL文件?
有什么建议怎么做?

在我们旧的TFS 2010中,已经有人为此创建了库,并在MSbuild中进行了这样的配置。

<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
    <UsingTask TaskName="PP.Builder.VersionUpdateTask" AssemblyFile="PP.Builder.dll"/>
    <UsingTask TaskName="PP.DbUpdater.Library.DbBuildTask" AssemblyFile="PP.DbUpdater.Library.dll"/>
    .....
    .....
  <Target Name="AfterGet">
     <Exec Command="$(TF) get /noprompt /all $(AssemblyInfoFile)"/>
  </Target>

  <Target Name="AfterCompile">
     <DbBuildTask DbServer="TestServer\sql2008r2" DbBackupPath="c:\beckUp backups" DbName="empty" ScriptsPath="$(SolutionRoot)\Proj\dev\PP.Veyron.Db" UpdateVersionNumber="false" UpdateVersionNumberYesterday="false" TestOnly="true" SkipDbBackup="false"/>
    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

任何想法如何将其转移到TFS2015 vNext构建系统?

Cec*_*SFT 5

Powershell脚本可用于执行SQL脚本。因此,您可以在构建模板中添加Powershell脚本步骤,该脚本应如下所示:

#Provide SQLServerName
$SQLServer ="MySQLSErver\InstanceName"
#Provide Database Name 
$DatabaseName ="Test"
#Scripts Folder Path
$FolderPath ="C:\MyScripts\Test\"

#Loop through the .sql files and run them
foreach ($filename in get-childitem -path $FolderPath -filter "*.sql")
{
invoke-sqlcmd –ServerInstance $SQLServer -Database $DatabaseName -InputFile $filename.fullname
#Print file name which is executed
$filename 
} 
Run Code Online (Sandbox Code Playgroud)

请参阅博客:http : //www.techbrothersit.com/2015/08/how-to-execute-sql-files-from-directory.html