github.com/muratcelep/terraform@v1.1.0-beta2-not-internal-4/website/upgrade-guides/0-9.html.markdown (about) 1 --- 2 layout: "language" 3 page_title: "Upgrading to Terraform 0.9" 4 sidebar_current: "upgrade-guides-0-9" 5 description: |- 6 Upgrading to Terraform v0.9 7 --- 8 9 # Upgrading to Terraform v0.9 10 11 Terraform v0.9 is a major release and thus includes some changes that 12 you'll need to consider when upgrading. This guide is meant to help with 13 that process. 14 15 The goal of this guide is to cover the most common upgrade concerns and 16 issues that would benefit from more explanation and background. The exhaustive 17 list of changes will always be the 18 [Terraform Changelog](https://github.com/muratcelep/terraform/blob/main/CHANGELOG.md). 19 After reviewing this guide, we recommend reviewing the Changelog to check on 20 specific notes about the resources and providers you use. 21 22 ## Remote State 23 24 Remote state has been overhauled to be easier and safer to configure and use. 25 **The new changes are backwards compatible** with existing remote state and 26 you'll be prompted to migrate to the new remote backend system. 27 28 An in-depth guide for migrating to the new backend system 29 [is available here](https://github.com/muratcelep/terraform/blob/v0.9.11/website/source/docs/backends/legacy-0-8.html.md). 30 This includes 31 backing up your existing remote state and also rolling back if necessary. 32 33 The only non-backwards compatible change is in the CLI: the existing 34 `terraform remote config` command is now gone. Remote state is now configured 35 via the "backend" section within the Terraform configuration itself. 36 37 **Example configuring a Consul remote backend:** 38 39 ``` 40 terraform { 41 backend "consul" { 42 address = "demo.consul.io" 43 datacenter = "nyc3" 44 path = "tfdemo" 45 scheme = "https" 46 } 47 } 48 ``` 49 50 **Action:** Nothing immediately, everything will continue working 51 except scripts using `terraform remote config`. 52 As soon as possible, [upgrade to backends](/docs/language/settings/backends/index.html). 53 54 ## State Locking 55 56 Terraform 0.9 now will acquire a lock for your state if your backend 57 supports it. **This change is backwards compatible**, but may require 58 enhanced permissions for the authentication used with your backend. 59 60 Backends that support locking as of the 0.9.0 release are: local files, 61 Amazon S3, HashiCorp Consul, and Terraform Enterprise (atlas). If you don't 62 use these backends, you can ignore this section. 63 64 Specific notes for each affected backend: 65 66 * **Amazon S3**: DynamoDB is used for locking. The AWS access keys 67 must have access to Dynamo. You may disable locking by omitting the 68 `lock_table` key in your backend configuration. 69 70 * **HashiCorp Consul**: Sessions are used for locking. If an auth token 71 is used it must have permissions to create and destroy sessions. You 72 may disable locking by specifying `lock = false` in your backend 73 configuration. 74 75 **Action:** Update your credentials or configuration if necessary.