How do volumes work in v2 apps?

I migrated a couple apps with volumes yesterday. Since the volumes only containing caches, I tried to avoid downtime by removing them manually, migrating then adding new volumes. I ran into the same problem at the last step.

I found it difficult to understand what to do, and after trying the attach-volume switch (which I couldn’t get to work) and some investigation into the scary-looking machines API I found

So I followed that and scaled them down to 0 (so much for no downtime!), then ran a deploy and it created a new machine with the volume attached. I could then clone it to scale back up. It all seems to be ok now.