在我们不小心执行了一个过时的分支后,我们的 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/