部署到windows azure实例时升级数据库架构

时间:2013-02-19 14:26:33

标签: azure azure-sql-database

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

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

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

我想在每个使用PowerShell脚本通过TFS Build Machine运行的构建上自动执行sql脚本。我怎么能这样做?

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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脚本: 您可以参考问题here

希望这有帮助