Migrate from apps (v1) to machines (v2)

Given recent stability issues in the sjc region (see my other ticket) I got the recommendation to migrate from apps to machines. I was wondering if there are any instructions/tips for this type of migration?

Not sure if this will be of help but I recently created a v2 app. Here’s how I did it:

  1. Update the CLI to the latest version
  2. Then fly launch --force-machines
  3. If you didn’t deploy during launch then fly deploy --force-machines

This will create a v2 app. You can confirm it’s not using Nomad (v1) because during the first deploy the log will tell you it has created a machine. Also by using fly machines list or fly status which will say Platform = machines.

Depending on your use case, migrating an app could be as simple as deleting your old fly.toml and doing fly launch --force-machines. Then pointing the DNS to the new v2 app, and deleting the v1 app when the DNS have replicated.

It would be great if there was an automatic migration tool with zero downtime… but AFAIK this doesn’t exist yet.

2 Likes

I know how to deploy a new app as a v2 app. But I am specifically looking into how to change a running v1 app to a v2 app :slight_smile:

Because deleting and re-creating etc is not really an option for us unfortunately. I also would need my volumes to be migrated.

1 Like

Fly is working on auto-migration. No word on an ETA, yet.

I’d expect it soon, since nomad isn’t cutting it anymore (ref) given Fly’s specific usecases (blog).

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.