将集群资源迁移到无服务器或专用集群资源
从 TiDB Cloud Terraform Provider v0.4.0 开始,tidbcloud_cluster
资源被两个新资源所取代:tidbcloud_serverless_cluster
和 tidbcloud_dedicated_cluster
。如果你正在使用 TiDB Cloud Terraform Provider v0.4.0 或更高版本,可以按照本文档将你的 tidbcloud_cluster
资源迁移到 tidbcloud_serverless_cluster
或 tidbcloud_dedicated_cluster
资源。
前置条件
第 1 步:识别需要迁移的 tidbcloud_cluster
资源
列出所有
tidbcloud_cluster
资源:terraform state list | grep "tidbcloud_cluster"选择一个目标集群资源进行迁移,并获取其集群
id
以备后用:terraform state show ${your_target_cluster_resource} | grep ' id '
第 2 步:从 Terraform 状态中移除现有资源
从 Terraform 状态中移除你的目标集群资源:
terraform state rm ${your_target_cluster_resource}
第 3 步:删除目标集群资源的配置
在你的 .tf
文件中,找到目标集群资源的配置并删除对应的代码。
第 4 步:为新的无服务器或专用集群资源添加 import 块
如果你的目标集群是 TiDB Cloud Serverless,请将以下 import 块添加到你的
.tf
文件中,将example
替换为你期望的资源名称,并将${id}
替换为你在 第 1 步 获取的集群 ID:# TiDB Cloud Serverless import { to = tidbcloud_serverless_cluster.example id = "${id}" }如果你的目标集群是 TiDB Cloud Dedicated,请将以下 import 块添加到你的
.tf
文件中,将example
替换为你期望的资源名称,并将${id}
替换为你在 第 1 步 获取的集群 ID:# TiDB Cloud Dedicated import { to = tidbcloud_dedicated_cluster.example id = "${id}" }
第 5 步:生成新的配置文件
根据 import 块为新的无服务器或专用集群资源生成新的配置文件:
terraform plan -generate-config-out=generated.tf
不要在上述命令中指定已有的 .tf
文件名,否则 Terraform 会返回错误。
第 6 步:检查并应用生成的配置
检查生成的配置文件,确保其满足你的需求。你也可以选择将该文件的内容移动到你喜欢的位置。
然后,运行 terraform apply
以导入你的基础设施。应用后,示例输出如下:
tidbcloud_serverless_cluster.example: Importing...
tidbcloud_serverless_cluster.example: Import complete
Apply complete! Resources: 1 imported, 0 added, 0 changed, 0 destroyed.