---
page_title: Moving Resources - Terraform CLI
description: >-
  Commands that allow you to manage the way that resources are tracked in state.
  They are helpful when you move or change resources.
---

# Moving Resources

Terraform's state associates each real-world object with a configured resource
at a specific [resource address](/terraform/cli/state/resource-addressing). This
is seamless when changing a resource's attributes, but Terraform will lose track
of a resource if you change its name, move it to a different module, or change
its provider.

Usually that's fine: Terraform will destroy the old resource, replace it with a
new one (using the new resource address), and update any resources that rely on
its attributes.

In cases where it's important to preserve an existing infrastructure object, you
can explicitly tell Terraform to associate it with a different configured
resource.

For most cases we recommend using
[the Terraform language's refactoring features](/terraform/language/modules/develop/refactoring)
to document in your module exactly how the resource names have changed over
time. Terraform reacts to this information automatically during planning, so users of your module do not need to take any unusual extra steps.

> **Hands On:** Try the [Use Configuration to Move Resources](/terraform/tutorials/configuration-language/move-config) tutorial.

There are some other situations which require explicit state modifications,
though. For those, consider the following Terraform commands:

- [The `terraform state mv` command](/terraform/cli/commands/state/mv) changes
  which resource address in your configuration is associated with a particular
  real-world object. Use this to preserve an object when renaming a resource, or
  when moving a resource into or out of a child module.

- [The `terraform state rm` command](/terraform/cli/commands/state/rm) tells
  Terraform to stop managing a resource as part of the current working directory
  and workspace, _without_ destroying the corresponding real-world object. (You
  can later use `terraform import` to start managing that resource in a
  different workspace or a different Terraform configuration.)

- [The `terraform state replace-provider` command](/terraform/cli/commands/state/replace-provider)
  transfers existing resources to a new provider without requiring them to be
  re-created.
