Migrate Terraform State
Recently I encountered a weird situation where my Terraform module got changed, earlier I was booting VPC and Security Groups creation together and keeping the state for the same in a single state file.
With the newer version of the module, we decided to split the VPC and Security Groups into their module and each of them should have a state file to speed up the terraform bootstrap. But this is a breaking change for my existing environment as the module update will destroy the security groups. I decided to hack the state file manually and split the modules but it's a tedious process and may corrupt the state file.
One of my colleagues introduced me to terraform migrate
and it's the easiest way to migrate a terraform state
cd vpc
terraform state pull > vpc.tfstate
touch sg.tfstate
terraform state mv -state=vpc.tfstate -state-out=sg.tfstate module.sg module.sg
terraform state push sg.tfstate
# verify state was moved
terraform state list | grep sg