- The Command Line
- Basic CLI Features
- Command: state
- Command: state push
Command: state push
The tofu state push
command is used to manually upload a local
state file to remote state. 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: tofu state push [options] PATH
This command pushes the state specified by PATH to the currently configured backend.
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.
OpenTofu 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 tofu state push | sc terraform.tfstate
.
OpenTofu 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, OpenTofu 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, OpenTofu 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 cloud
backend or the remote
backend
only, tofu state push
also accepts the option
-ignore-remote-version
.