azure - 使用 Azure Devops CICD 使用 Terraform 部署 Azure SQL 数据对象
问题描述
我已经使用 Terraform 成功部署了 Azure SQL Server 和数据库。现在我想部署 SSDT 文件(现有数据库中的所有对象都使用 Terraform。)
我无法在存储库中的数据库对象下方找到要部署的 .tf 代码。
解决方案
你不会找到这样的资源,因为这不是 Terraform 的范围。Howeer 你仍然可以做解决方法和使用null_resource
resource "null_resource" "database-initialization" {
triggers = {
filename_sha1 = "${sha1(file("filename.sql"))}"
}
provisioner "local-exec" {
command = <<EOT
sqlcmd -U $SQL_ADMIN_LOGIN -S ${data.azurerm_sql_server.sql.fqdn} -P $SQL_FOUNDATION_ADMIN_PASSWORD -d ${var.db_name} -i "filename.sql"
EOT
}
}
您可以以类似的方式使用 sqlpackage 来部署例如 DACPAC。但是,您需要计算要运行的文件的第一个哈希值并将其用作触发器,每次更改文件时都会触发资源。
推荐阅读
- asp.net - 解码请求中发送的 __VIEWSTATE
- javascript - 在Angularjs运行块中等待异步javascript
- javascript - 页面加载时的 HtmlUnit JavaScript 问题 - 找不到函数
- regex - [Regex]::Replace() 和 -replace 有什么区别?
- symfony-3.4 - 如何在我的项目中独立使用事件命令 Symfony?
- node.js - 调试我的打字稿文件时出错:-> 附加调试器。等待调试器断开连接
- ruby-on-rails - 如何检查 ruby on rails 中的表单完整性?
- xamarin - 适用于 OpenStreetMap 的 Xamarin SDK
- xml - 如何使用powershell解析xml中的数字元素
- c - 如何在 CMake 的外部库中包含头文件