Skip to content

Instantly share code, notes, and snippets.

@fernando-mc
Created August 19, 2019 19:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fernando-mc/c27b2043d8cbf0478b223a03fada030e to your computer and use it in GitHub Desktop.
Save fernando-mc/c27b2043d8cbf0478b223a03fada030e to your computer and use it in GitHub Desktop.
DynamoDB Backup and Migration
import time
import boto3
dynamodb = boto3.client('dynamodb')
source_table_name = "customerTable" # Or whatever your source table name is
dest_table_name = "customerTable-dev" # This should be an empty table - the script will delete it first
backup_name = source_table_name + "backupMigration" # Or any other backup name
# Create the backup
response = dynamodb.create_backup(
TableName=source_table_name,
BackupName=backup_name
)
# Get the backup ARN From the response
backup_arn = response["BackupDetails"]["BackupArn"]
dynamodb.delete_table(
TableName=dest_table_name
)
while True:
try:
dynamodb.describe_table(
TableName=dest_table_name,
)
time.sleep(5)
except dynamodb.exceptions.ResourceNotFoundException:
dynamodb.restore_table_from_backup(
TargetTableName=dest_table_name,
BackupArn=backup_arn
)
break
except dynamodb.exceptions.ResourceInUseException:
break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment