Speriamo di passare a un nuovo processo branch-per-issue con lo sviluppo. Per prepararsi a questo, sono state fatte molte ricerche e sperimentazioni in termini di controllo di versione, CI e processo di promozione. L'unica cosa che non voglio cadere nel progetto è il database e il suo schema.
Il processo attuale che abbiamo in atto ci colloca in una posizione costosa. Abbiamo quattro box SQL Server, ognuno con il proprio valore di dati. C'è Staging (per lo sviluppo), Quality (per QA), Beta (per la prototipazione del client) e Produzione. Desideriamo iniziare a sostituire alcuni dei nostri modelli di database con MariaDB mentre implementiamo anche questo nuovo processo. Tuttavia, ho difficoltà a capire come implementeremo le nostre modifiche SQL nel controllo della versione.
Il nostro nuovo processo inizierà con un ramo principale, che sarà il nostro codice principale, seguito da un ramo di integrazione e rami di emissione. Ogni sviluppatore avrà la propria istanza Web installata per apportare le modifiche necessarie su qualsiasi ramo a cui sta lavorando in quel momento. Tuttavia, abbiamo sempre lavorato sul server globale di gestione temporanea per il nostro SQL. Questo non mi sembra praticabile nel nuovo processo che intendiamo fare. La mia ipotesi per questo è che ogni persona avrà una versione di un database (MariaDB) a cui apportare modifiche allo schema. Quindi, questa è la mia domanda principale.
Utilizzo un processo di solo commit e fusione delle modifiche dello schema? Non penserei che commettere un intero database sia una buona idea. E a quel punto, come sarebbe conservato nel controllo di versione (useremo Git come controllo della versione)? Ogni schema modificato sarebbe memorizzato come un file separato?
Per chiarezza, quello che stiamo pensando di usare è un server PHP / Apache per fornire i nostri contenuti web, un back-end API Java, un MariaDB (che sposteremo il server SQL da) e un repository Git per il controllo della versione sul codice web e il codice API.