Negli ultimi due mesi ho cercato soluzioni o pratiche per gestire la gestione dei rilasci all'interno dei database. Sto cercando quello che la gente considera il processo migliore per gestirlo.
Abbiamo 3 ambienti per i nostri database:
- Sviluppo
- Test di accettazione dell'utente (UAT)
- Produzione
Il problema è che a volte stiamo apportando modifiche a diverse cose all'interno del nostro database di sviluppo e che è giunto il momento di distribuirlo, alcune delle funzionalità potrebbero non essere pronte per essere rilasciate a UAT.
Di recente abbiamo iniziato a utilizzare il controllo del codice sorgente Red Gate SQL per l'archiviazione di tutte le nostre entità (con commit regolari).
Stavo pensando di basarmi sui changeset (ovvero dire che tutto, dal changeset X e viceversa, viene ora trasferito a UAT), ciò significa che le persone controllano il loro codice nel controllo del codice sorgente appena prima di effettuare una distribuzione che può creare confusione ( soprattutto perché le persone sono smemorate). Un altro problema derivante dall'approccio con il changeset è se c'è un bug in una procedura memorizzata che deve essere riparato, il numero del changeset finirà per essere fuori dall'ambito del nostro changeset massimo per la revisione, quindi rendendolo così che se dobbiamo ricreare il database da un massimo changeset, elimineremo nuovamente il bug.
Qualche suggerimento su un processo?
Grazie