Terraform 销毁失败,因为 Google SQL 用户拥有数据库

Terraform 销毁失败,因为 Google SQL 用户拥有数据库

我正在使用 Terraform 通过 google_sql_database_instance 资源配置 Google Cloud SQL PostgreSQL 数据库。我还使用 google_sql_user 资源创建了一个用户。

申请后,我部署了我的应用程序,该应用程序创建了该用户拥有的数据库。

问题是,当我terraform destroy删除数据库之前,Terraform 会尝试删除用户。它会收到错误(这是预料之中的;您无法删除拥有数据库的 Postgres 用户)。但 Terraform 不需要删除用户,因为下一步是删除整个数据库实例。

有没有办法告诉 Terraform 删除 google_sql_database_instance 将会删除 google_sql_user,这样 Terraform 就不会先尝试明确删除用户而失败?

答案1

使用 terraformstate rm告诉它忘记用户和数据库的存在,这样它就不会在销毁时主动尝试删除它们(并失败)。

我使用一个destroy.sh脚本:

terraform state rm module.your_server_name.google_sql_user.users \ 
     module.your_server_name.google_sql_database.your_database_name
terraform destroy $@

答案2

不确定它是否会起作用,但尝试使用depends_on实例资源,例如

depends_on = ["google_sql_database_instance.ResourceNameHere"]

相关内容