Modifiche dello schema di database
È normale che il software moderno abbia un livello di database. In genere, viene utilizzato un database relazionale, che memorizza sia i dati che la struttura dei dati. Spesso è necessario modificare il database nel processo di consegna continua. La gestione delle modifiche in un database relazionale richiede un'attenzione speciale e presenta altre sfide rispetto a quelle che si verificano durante l'implementazione dei file binari delle applicazioni. Di solito, quando si aggiorna un file binario di un'applicazione, si arresta l'applicazione, la si aggiorna e quindi la si riavvia. Non devi preoccuparti dello stato dell'applicazione, che viene gestito al di fuori di quest'ultima.
Quando si aggiornano i database, è necessario tenere in considerazione lo stato, perché un database è composto per la maggior parte dallo stato e solo in minima parte dalla logica e dalla struttura.
Gli schemi del database prima e dopo l'applicazione di una modifica devono essere considerati come versioni diverse del database. È possibile utilizzare strumenti come Liquibase e Flyway per gestire le versioni.
In generale, questi strumenti impiegano alcune varianti dei seguenti metodi:
-
Aggiungi una tabella al database in cui è archiviata una versione del database.
-
Tieni traccia dei comandi di modifica del database e raggruppali in set di modifiche con versione. Nel caso di Liquibase, queste modifiche vengono archiviate in file XML. Flyway utilizza un metodo leggermente diverso in cui i set di modifiche vengono gestiti come file SQL separati oppure occasionalmente come classi Java separate per transizioni più complesse.
-
Quando viene richiesto a Liquibase di aggiornare un database, questo strumento esamina la tabella dei metadati e determina quali set di modifiche eseguire per aggiornare il database con la versione più recente.