The "normal" way to do schema changes while there is rolling change on the clients is to:
Make a schema change to the database that works for the new and old clients
Update the clients to use the new schema
Wait for all the clients to get updated and use the new schema
Remove the bit of the schema that was for backwards compatibility
But in the case of an offline app we don't have control over when the client actually gets updated because we might make a change while they're offline.
The "normal" way to do schema changes while there is rolling change on the clients is to:
But in the case of an offline app we don't have control over when the client actually gets updated because we might make a change while they're offline.