Moving resources between remote states

Sometimes it's useful to be able to move resources between remote states without a need to recreate infrastructure. One use case is moving resources between directories.

terraform state mv command does not directly support remote states, but -state and -state-out parameters can be used against local states. This means remote states need to fetched first.

This can be done with for example aws s3 cp or terraform state pull > local.tfstate.

After both states are local, state mv command can be used in the following manner:

terraform state mv -state=src.tfstate -state-out=dst.tfstate module.foo module.foo

After this modified local state files need to pushed to remote storage, for example with:

terraform state push /path/to/local/state

References:

  • https://github.com/hashicorp/terraform/pull/15652#issuecomment-410754814

Last updated