Penso che tu abbia onestamente già accennato alla risposta più semplice.
Innanzitutto, aggiorna il tuo livello di accesso ai dati per gestire sia il nuovo che il vecchio schema:gli inserimenti e gli aggiornamenti dovrebbero aggiornare sia il nuovo che il vecchio per mantenere le cose sincronizzate. Le query dovrebbero esaminare solo il vecchio schema poiché a questo punto è l'origine del record.
Quindi copia tutti i dati dal vecchio al nuovo schema.
Quindi aggiorna l'accesso ai dati per interrogare ora i nuovi dati. Ciò manterrà aggiornati i vecchi dati, ma consentirà il test completo dei nuovi dati prima di apportare modifiche che comporteranno la mancata sincronizzazione dei due set di dati. Aiuterà anche a facilitare gli aggiornamenti continui (ad es. le applicazioni con codice di accesso ai dati nuovo e vecchio continueranno a funzionare contemporaneamente.
Infine, aggiorna il livello di accesso ai dati per accedere solo al nuovo schema e quindi elimina i vecchi dati.
Fatta eccezione per questa fase finale, puoi sempre tornare alla versione precedente in caso di problemi.