Myślę, że uczciwie zasugerowałeś już najprostszą odpowiedź.
Najpierw zaktualizuj warstwę dostępu do danych, aby obsługiwać zarówno nowy, jak i stary schemat:wstawki i aktualizacje powinny aktualizować zarówno nowy, jak i stary, aby zachować synchronizację. Zapytania powinny dotyczyć tylko starego schematu, ponieważ w tym momencie jest on źródłem zapisu.
Następnie skopiuj wszystkie dane ze starego do nowego schematu.
Następnie zaktualizuj dostęp do danych, aby teraz wysyłać zapytania o nowe dane. Spowoduje to aktualizację starych danych, ale umożliwi pełne przetestowanie nowych danych przed wprowadzeniem jakichkolwiek zmian, które spowodują brak synchronizacji obu zestawów danych. Pomoże to również ułatwić ciągłe aktualizacje (tj. aplikacje z nowym i starym kodem dostępu do danych będą nadal działać w tym samym czasie.
Na koniec zaktualizuj warstwę dostępu do danych, aby uzyskać dostęp tylko do nowego schematu, a następnie usuń stare dane.
Poza tym ostatnim etapem zawsze możesz wrócić do poprzedniej wersji, jeśli napotkasz problemy.