mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Signed-off-by: Christian Mesh <christianmesh1@gmail.com> Signed-off-by: ollevche <ollevche@gmail.com> Co-authored-by: ollevche <ollevche@gmail.com>
75 lines
3.3 KiB
Plaintext
75 lines
3.3 KiB
Plaintext
---
|
|
description: >-
|
|
The `tofu state replace-provider` command replaces the provider for
|
|
resources in the OpenTofu state.
|
|
---
|
|
|
|
# Command: state replace-provider
|
|
|
|
The `tofu state replace-provider` command is used to replace the provider
|
|
for resources in a [OpenTofu state](../../../language/state/index.mdx).
|
|
|
|
## Usage
|
|
|
|
Usage: `tofu state replace-provider [options] FROM_PROVIDER_FQN TO_PROVIDER_FQN`
|
|
|
|
This command will update all resources using the "from" provider, setting the
|
|
provider to the specified "to" provider. This allows changing the source of a
|
|
provider which currently has resources in state.
|
|
|
|
This command will output a backup copy of the state prior to saving any
|
|
changes. The backup cannot be disabled. Due to the destructive nature
|
|
of this command, backups are required.
|
|
|
|
:::note
|
|
Use of variables in [module sources](../../../language/modules/sources.mdx#support-for-variable-and-local-evaluation),
|
|
[backend configuration](../../../language/settings/backends/configuration.mdx#variables-and-locals),
|
|
or [encryption block](../../../language/state/encryption.mdx#configuration)
|
|
requires [assigning values to root module variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables)
|
|
when running `tofu state replace-providers`.
|
|
:::
|
|
|
|
This command also accepts the following options:
|
|
|
|
- `-auto-approve` - Skip interactive approval.
|
|
|
|
- `-lock=false` - Don't hold a state lock during the operation. This is
|
|
dangerous if others might concurrently run commands against the same
|
|
workspace.
|
|
|
|
- `-lock-timeout=0s` - Duration to retry a state lock.
|
|
|
|
- `-var 'NAME=VALUE'` - Sets a value for a single
|
|
[input variable](../../../language/values/variables.mdx) declared in the
|
|
root module of the configuration. Use this option multiple times to set
|
|
more than one variable. Refer to
|
|
[Input Variables on the Command Line](../plan.mdx#input-variables-on-the-command-line) for more information.
|
|
|
|
- `-var-file=FILENAME` - Sets values for potentially many
|
|
[input variables](../../../language/values/variables.mdx) declared in the
|
|
root module of the configuration, using definitions from a
|
|
["tfvars" file](../../../language/values/variables.mdx#variable-definitions-tfvars-files).
|
|
Use this option multiple times to include values from more than one file.
|
|
|
|
There are several other ways to set values for input variables in the root
|
|
module, aside from the `-var` and `-var-file` options. Refer to
|
|
[Assigning Values to Root Module Variables](../../../language/values/variables.mdx#assigning-values-to-root-module-variables) for more information.
|
|
|
|
For configurations using the [`cloud` backend](../../../cli/cloud/index.mdx) or the [`remote` backend](../../../language/settings/backends/remote.mdx)
|
|
only, `tofu state replace-provider`
|
|
also accepts the option
|
|
[`-ignore-remote-version`](../../../cli/cloud/command-line-arguments.mdx#ignore-remote-version).
|
|
|
|
For configurations using
|
|
[the `local` state](../../../language/settings/backends/local.mdx) only,
|
|
`tofu state replace-provider` also accepts the legacy options
|
|
[`-state`, `-state-out`, and `-backup`](../../../language/settings/backends/local.mdx#command-line-arguments).
|
|
|
|
## Example
|
|
|
|
The example below replaces the `hashicorp/aws` provider with a fork by `acme`, hosted at a private registry at `registry.acme.corp`:
|
|
|
|
```shell
|
|
$ tofu state replace-provider hashicorp/aws registry.acme.corp/acme/aws
|
|
```
|