---
page_title: Upgrading to Terraform 0.9
description: Upgrading to Terraform v0.9
---

# Upgrading to Terraform v0.9

Terraform v0.9 is a major release and thus includes some changes that
you'll need to consider when upgrading. This guide is meant to help with
that process.

The goal of this guide is to cover the most common upgrade concerns and
issues that would benefit from more explanation and background. The exhaustive
list of changes will always be the
[Terraform Changelog](https://github.com/hashicorp/terraform/blob/main/CHANGELOG.md).
After reviewing this guide, we recommend reviewing the Changelog to check on
specific notes about the resources and providers you use.

## Remote State

Remote state has been overhauled to be easier and safer to configure and use.
**The new changes are backwards compatible** with existing remote state and
you'll be prompted to migrate to the new remote backend system.

An in-depth guide for migrating to the new backend system
[is available here](https://github.com/hashicorp/terraform/blob/v0.9.11/website/source/docs/backends/legacy-0-8.html.md).
This includes
backing up your existing remote state and also rolling back if necessary.

The only non-backwards compatible change is in the CLI: the existing
`terraform remote config` command is now gone. Remote state is now configured
via the "backend" section within the Terraform configuration itself.

**Example configuring a Consul remote backend:**

```
terraform {
  backend "consul" {
    address    = "demo.consul.io"
    datacenter = "nyc3"
    path       = "tfdemo"
    scheme     = "https"
  }
}
```

**Action:** Nothing immediately, everything will continue working
except scripts using `terraform remote config`.
As soon as possible, [upgrade to backends](/language/settings/backends).

## State Locking

Terraform 0.9 now will acquire a lock for your state if your backend
supports it. **This change is backwards compatible**, but may require
enhanced permissions for the authentication used with your backend.

Backends that support locking as of the 0.9.0 release are: local files,
Amazon S3, HashiCorp Consul, and Terraform Enterprise (atlas). If you don't
use these backends, you can ignore this section.

Specific notes for each affected backend:

- **Amazon S3**: DynamoDB is used for locking. The AWS access keys
  must have access to Dynamo. You may disable locking by omitting the
  `lock_table` key in your backend configuration.

- **HashiCorp Consul**: Sessions are used for locking. If an auth token
  is used it must have permissions to create and destroy sessions. You
  may disable locking by specifying `lock = false` in your backend
  configuration.

**Action:** Update your credentials or configuration if necessary.
