TFS 2015 vNext 构建从文件夹针对数据库执行 SQL 脚本
TFS 2015 vNext build execute SQL scripts from folder aganst databese
我需要创建集成检查构建,它还检查更新脚本在针对数据库执行时是否不会抛出错误(Microsoft sql 服务器 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>
关于如何将其转移到 TFS2015 vNext 构建系统的任何想法?
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
}
参考博客:http://www.techbrothersit.com/2015/08/how-to-execute-sql-files-from-directory.html
我需要创建集成检查构建,它还检查更新脚本在针对数据库执行时是否不会抛出错误(Microsoft sql 服务器 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>
关于如何将其转移到 TFS2015 vNext 构建系统的任何想法?
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
}
参考博客:http://www.techbrothersit.com/2015/08/how-to-execute-sql-files-from-directory.html