Skills

Migrations

Use when moving a Butterbase app between regions, checking migration progress, aborting...

Install

npx skills add butterbase-ai/butterbase-skills --skill migrations -g -a claude-code -y
Category
Engineering
Updated
4d ago
License
MIT
Context cost
Lightabout 888 tokens
Runs scripts
No, instructions only

What it does

Use when moving a Butterbase app between regions, checking migration progress, aborting a stuck move, reverse-rolling a completed move, or tearing down retained source replicas after a move is stable

Butterbase App Migrations (Multi-Region)

Moving an app between regions is an orchestrated migration: data dumped from source, restored in dest, blobs copied, runtime brought up, then traffic flipped. Source replica is retained for safe rollback until you tear it down.

Four small tools wrap the orchestration:

ToolPurpose
list_regionsDiscover what regions exist before suggesting one.
move_appStart a migration. Returns a migration_id.
move_app_statusRead the current step + replica state of a specific migration.
manage_migrationsOperational ops: get_active, abort, reverse, list_source_replicas.
teardown_source_replicaDecommission the retained source replica once you're confident.

1. The step sequence

A successful move walks through 11 steps in order:

requested → reserving_dest → blocking_writes → dumping_data →
restoring_data → copying_blobs → copying_runtime → flipping_routing →
setting_up_reverse_replication → unblocking_writes → completed

The cutover happens at flipping_routing. Before that, the app is still served from the source. After that, traffic is on the destination.

Terminal states: completed, aborted, failed.


2. Start a move

list_regions              → confirm dest region is supported
move_app(app_id, dest_region) → { migration_id, status: "queued" }

Then poll with move_app_status({ app_id, migration_id }) every few seconds (or call manage_migrations({ action: "get_active", app_id }) if you've forgotten the id).


3. Recovery: pick the right escape hatch

Stuck or wrong choice? Different state, different tool:

Read the whole SKILL.md on GitHub

More in Engineering