This document describes the tooling and procedures for migrating Terraform state between backends, environments, or configurations.
| Script | Purpose |
|---|---|
infrastructure/scripts/migrate-state.sh |
State migration, backup, rollback, import, move |
infrastructure/scripts/validate-state.sh |
State validation and health check |
# 1. Backup current state
bash infrastructure/scripts/migrate-state.sh backup
# 2. Validate configuration
bash infrastructure/scripts/migrate-state.sh validate
# 3. Migrate to new backend
bash infrastructure/scripts/migrate-state.sh migrate path/to/new-backend-config.tfbash infrastructure/scripts/migrate-state.sh rollbackbash infrastructure/scripts/migrate-state.sh import aws_s3_bucket.my_bucket my-bucket-namebash infrastructure/scripts/migrate-state.sh mv aws_s3_bucket.old aws_s3_bucket.new- Always create a backup before any state operation
- Validate state after migration with
validate-state.sh - Keep at least 30 days of state backups
- Use state locking (DynamoDB + S3 backend)
- Never manually edit
.tfstatefiles