1

我在 Windows azure 实例上托管了 Web 应用程序。我们有一个测试和实时云服务,测试服务有 1 个实例,实时服务有 3 个实例。

测试应用程序每晚通过 TFS Builds 自动部署,并使用 power shell 脚本部署到 Windows Azure。

问题是我们有用于数据库模式和数据更改(如果需要)的老式 sql 脚本。目前我们必须手动登录到 azure sql 数据库 (SMSS) 并运行脚本。

我想使用 powershell 脚本在每晚通过 TFS Build Machine 运行的每个构建上自动化 sql 脚本。我怎样才能做到这一点 ?

SQL 脚本是可重新运行的,所以不用担心,如果它每天运行相同的脚本,因为这不会在测试应用程序上产生任何问题。

4

2 回答 2

0

也许我错了,但我认为这很简单。为什么不从将 SQL 脚本文件作为参数传递的 PowerShell 脚本中调用“sqlcmd.exe”实用程序?

请务必使用 SQL Server 2008 R2 或更高版本附带的 sqlcmd.exe,以便与 SQL Azure 一起正常工作。

于 2013-02-20T22:56:03.893 回答
0

我想了解如何部署 SQL 包。

看起来您有一个必须在每次部署数据库后运行的脚本。这可以使用 powershell (ExecuteNonQquery) 来完成,就像它可以用于本地 SQL Server 一样。

对于单个查询:

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlQuery = "Your Query here"
$SqlConnection.ConnectionString = "Database Conncetion String"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $sqlQuery
$SqlCmd.CommandTimeout = 300
$SqlCmd.Connection = $SqlConnection
$sqlConnection.Open()
$result = $sqlCmd.ExecuteNonQuery()
$sqlConnection.Close()

准备好查询和连接字符串

对于 SQL 脚本:您可以在此处 参考问题

希望这可以帮助

于 2015-06-29T16:06:56.273 回答