删除数据库后,Terraform 尝试读取 SQL 用户

标签 terraform terraform-provider-gcp

在我们不小心执行了一个过时的分支后,我们的 terraform 状态进入了一个损坏的状态。
两个数据库被删除,并且由于 GCP 不允许您在删除后为数据库使用相同的名称,因此 terraform 无法重新创建数据库,因此退出。
问题是,terraform 认为数据库是他们的,并试图读取其用户:

Error when reading or editing SQL User "xxx" in instance "xxx": googleapi: Error 400: Invalid request: Invalid request since instance is not running., invalid


实例根本不存在!
我试图污染数据库和用户,但我仍然收到完全相同的错误。
有谁知道如何解决这一问题?我不能破坏和重建环境。

最佳答案

terraform state rm可用于从应该解决此问题的状态文件中删除不再存在的数据库。详情在 https://www.terraform.io/docs/commands/state/rm.html

关于删除数据库后,Terraform 尝试读取 SQL 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63939213/

相关文章:

Terraform aws_lb_ssl_negotiation_policy 使用 AWS 预定义的 SSL 安全策略

amazon-web-services - 配置 Terraform S3 后端时出错

amazon-web-services - 如何启动一个新的 Terraform 项目并将 s3 设置为后端

google-cloud-platform - Terraform 和 GCP : Google kubernetes cluster problem: Can't see monitoring section (memory and cpu) inside workloads (deployments, 状态集)

firebase - Google-beta 似乎正在使用不存在的项目和 google_firebase_project。我应该怎么办?

azure - "update in-place"在 Terraform 中无限期运行

openstack - 无法从 Terraform 启动 Openstack 实例

google-cloud-platform - 如何使用 terraform 在 Google Compute Engine 上启用允许 HTTP 流量/允许 HTTP 流量

terraform - 计划错误 : Cloud Resource Manager API has not been used

google-cloud-platform - 使用 terraform 创建多个 GCP 存储桶