51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
|
---
|
||
|
layout: "docs"
|
||
|
page_title: "Command: state push"
|
||
|
sidebar_current: "docs-commands-state-sub-push"
|
||
|
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](/docs/language/state/remote.html). 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`
|
||
|
|
||
|
This command will push the state specified by PATH to the currently
|
||
|
configured [backend](/docs/language/settings/backends/index.html).
|
||
|
|
||
|
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.
|
||
|
|
||
|
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.
|
||
|
|
||
|
For configurations using
|
||
|
[the `remote` backend](/docs/language/settings/backends/remote.html)
|
||
|
only, `terraform state push`
|
||
|
also accepts the option
|
||
|
[`-ignore-remote-version`](/docs/language/settings/backends/remote.html#command-line-arguments).
|