For two weeks, weâve had a migration tool out, fly migrate-to-v2
, which automagically converts your apps from our legacy V1 orchestration to our shiny new Apps V2 platform!
With flyctl v0.0.523 (already released!), migrate-to-v2
finally supports apps with volumes!
(even the per-process-group mounts that landed just yesterday)
Usage
Update flyctl (flyctl version update
), then run fly migrate-to-v2
in the root of your project (next to fly.toml). Thatâs it!
During the migration, each volume in your app will be cloned, and the newly-created machines will use these new volumes. (theyâll have the suffix -machines
appended to their names)
This is for data integrity reasons - if the migration doesnât go perfectly smooth, you have pristine, untouched copies of your data. After youâve migrated your app, and verified that your app works, you can safely delete the old volumes without the -machines
suffix.
Also of note: unlike the migration process for apps without volumes and postgres, migration for standard apps with volumes does incur slight downtime. The old VMs have to powered down before snapshots can be taken of their contents, again for data integrity reasons. The downtime is usually only about ten/twenty seconds in my experience, the time between the last nomad VM shutting down and the first machine being deployed, but that might not be acceptable for some usecases. (if this is you, please talk to us about it in this thread!)
For apps with volumes, the move to V2 should basically be a strict upgrade. Youâll get the flexibility and stability of machines, and the low-level nature of volumes (being bound to hardware) tends to just make sense when paired with machines.
If you run into any issues migrating your app, please let us know! We love feedback, and want to make sure these tools work for you.
Thanks!