We handle schema changes very nicely. Our db tool can detect automatically whether a binary and a schema match each other. Most common changes (e.g. field renamings, singletons transformed to lists, etc.) can be handled automatically.
Of course, complete refactorings of subsets of the database may require non-trivial transformation. Opa can't do everything automatically, but it will still check whether the database you obtain at the end of the transformation matches the requirements of your new binary.
There's no easy answer to your question. Although Opa raises warnings when it detects that the databases your accessing/trying to modify have changed, I guess you'd have to think of a migration process anyway.
What is your best practice so far? (and your expectations :p)