Esistono tecniche consolidate per la migrazione incrementale dei dati di un'applicazione esistente in una nuova applicazione?

0

Sto lavorando a un progetto in cui stiamo sostituendo in modo incrementale un'applicazione esistente. Con il termine incrementale intendo che alcune funzionalità verranno sviluppate e spedite nella nuova applicazione e tali funzionalità saranno "deprecate" nella vecchia applicazione, ma ancora disponibili. Le funzionalità deprecate verranno quindi rimosse dalla vecchia applicazione in una versione futura.

Ciò significa che i dati esistenti devono essere importati nella nuova applicazione, così come i nuovi dati creati utilizzando la vecchia applicazione.

Una possibile soluzione consiste nell'impostare metodi per importare dati dal vecchio database ed eseguirli ogni volta che vengono inseriti nuovi dati nel vecchio database. Ciò significherebbe che probabilmente i dati dovrebbero essere tracciati per evitare di provare a importare ogni singola riga ogni volta che ci sono cambiamenti. Immagino che questo possa essere fatto con un campo booleano nelle vecchie tabelle del database.

Sono sulla strada giusta qui? C'è una soluzione consolidata a questo problema?

    
posta Hassan 15.05.2017 - 02:15
fonte

1 risposta

2

Il libro 'Refactoring Databases: Evolutionary Database Design' di Scott J Ambler e Pramod J. Sadalage descrive approcci per incrementare migrare i dati di un'applicazione esistente in una nuova applicazione. Dai un'occhiata a qui per avere un'idea di cosa tratta il libro.

Quello che descrivi è fondamentalmente la creazione di un database completamente nuovo per la nuova applicazione e quindi la sincronizzazione con il vecchio database della vecchia applicazione. Mantenere sincronizzati entrambi i database sarà difficile.

Se vecchie e nuove applicazioni sono molto diverse e la vecchia applicazione morirà molto presto, allora questa è una possibile soluzione. Ciò ti consente di iniziare da zero un nuovo schema del database.

Altrimenti preferirei indirizzare la vecchia e la nuova applicazione allo stesso database e applicare le tecniche come descritto nel libro. Questo è più incrementale di due database diversi e supporta lo scenario di avere la vecchia e la nuova versione in esecuzione in parallelo.

    
risposta data 15.05.2017 - 15:07
fonte

Leggi altre domande sui tag