terraform/website/docs/cli/commands/state/push.mdx

49 lines
2.1 KiB
Plaintext
Raw Normal View History

2021-12-15 03:41:17 +01:00
---
2022-01-04 20:58:31 +01:00
page_title: 'Command: state push'
2021-12-15 03:41:17 +01:00
description: The `terraform state push` command pushes items to the Terraform state.
---
# Command: state push
The `terraform state push` command is used to manually upload a local
state file to [remote state](/language/state/remote). This command also
works with local state.
This command should rarely be used. It is meant only as a utility in case
manual intervention is necessary with the remote state.
## Usage
Usage: `terraform state push [options] PATH`
2022-03-18 22:15:24 +01:00
This command pushes the state specified by PATH to the currently
2021-12-15 03:41:17 +01:00
configured [backend](/language/settings/backends).
If PATH is "-" then the state data to push is read from stdin. This data
is loaded completely into memory and verified prior to being written to
the destination state.
2022-03-18 22:15:24 +01:00
-> **Note:** Terraform state files must be in UTF-8 format without a byte order mark (BOM). For PowerShell on Windows, use `Set-Content` to automatically encode files in UTF-8 format. For example, run `terraform state push | sc terraform.tfstate`.
2021-12-15 03:41:17 +01:00
Terraform will perform a number of safety checks to prevent you from
making changes that appear to be unsafe:
- **Differing lineage**: If the "lineage" value in the state differs,
Terraform will not allow you to push the state. A differing lineage
suggests that the states are completely different and you may lose
data.
- **Higher remote serial**: If the "serial" value in the destination state
is higher than the state being pushed, Terraform will prevent the push.
A higher serial suggests that data is in the destination state that isn't
accounted for in the local state being pushed.
Both of these safety checks can be disabled with the `-force` flag.
**This is not recommended.** If you disable the safety checks and are
pushing state, the destination state will be overwritten.
2021-12-21 23:39:30 +01:00
For configurations using the [Terraform Cloud CLI integration](/cli/cloud) or the [`remote` backend](/language/settings/backends/remote)
2021-12-15 03:41:17 +01:00
only, `terraform state push`
also accepts the option
2021-12-21 23:39:30 +01:00
[`-ignore-remote-version`](/cli/cloud/command-line-arguments#ignore-remote-version).