Automazione del cambio del database per CI?

-3

Il nostro stack di applicazioni assomiglia a Java 8 su Tomcat 7 , a diversi database Postgres distinti, Maven a build e Jenkins a CI . Ho completamente automatizzato il processo di compilazione del mio team utilizzando, tranne un sottoprocesso mancante: modifiche del database (schema e / o dati) . Una volta che una modifica è impegnata per il controllo della versione, viene avviata una nuova build in Jenkins e i suoi artefatti risultanti distribuiti nell'ambiente di generazione. Ho anche alcuni script che distribuiscono le modifiche ai file di configurazione, se ce ne sono, il che è raro, ma anche quello scenario è coperto.

Tuttavia, le modifiche allo schema del database devono ancora essere applicate manualmente. Quindi, se una classe di entità contiene una variabile mappata tramite Hibernate a una colonna che non è stata ancora aggiunta nel database, la distribuzione fallisce finché la modifica non viene applicata manualmente. Inutile dire che lo odio e ho bisogno di superare questo fastidioso intervento.

Mi chiedo se esiste un framework che integri le modifiche al database, usando convention over configuration . Attualmente sto scrivendo il mio script per scansionare una directory con versione per i file convenzionalmente formattati contenenti lo schema o le modifiche dei dati (sotto forma di istruzioni SQL) in Python ma preferirei non reinventare la ruota se tale framework esiste già perché questo scenario dovrebbe essere qualcosa che molti prima di me dovevano affrontare.

    
posta amphibient 08.06.2017 - 00:18
fonte

1 risposta

1

Non so se Hibernate possa creare i propri changeset in base al cambiamento nel mapping tra model e db, ma nel mondo Java credo che lo strumento di go-to sia LiquiBase ( link ). Ho avuto esperienza con questo e funziona abbastanza bene.

    
risposta data 08.06.2017 - 01:04
fonte