Sto lavorando su un'app con più versioni distribuite sul mercato. Versioni diverse hanno modificato i database e i database devono essere sincronizzati tra l'archiviazione locale e l'archiviazione del server da parte degli utenti firmati. Il problema è che un utente può avere diverse versioni dell'app installate su dispositivi diversi e potrebbe voler mantenere il database sincronizzato. Ora a causa di diverse versioni del database (schemi diversi, cioè colonne alterate o tipi di dati) è difficile essere sincronizzati per lo stesso account. Mi chiedo se esista uno schema ben noto per risolvere questo tipo di problemi. Credo che questo sia un problema molto comune e deve avere un approccio migliore da gestire.
Finora sto pensando di creare un wrapper per convertire i dati conformi alla versione DB (ricevuti dal server) in altri dati conformi alla versione DB (salvati nella memoria locale).
Modifica In risposta al commento di @RobertHarveys, si assume che ogni versione del database abbia uno schema diverso. Ad esempio, nuove colonne possono essere aggiunte in una versione e la vecchia colonna può essere rimossa nella versione successiva. Inoltre il tipo di dati può essere modificato in altre versioni.