Qual è un buon modo per migrare le modifiche al DB dallo sviluppo al QA in ambienti di produzione? Attualmente noi:
- Script la modifica in un file SQL e allegarlo a un elemento di lavoro TFS.
- Il lavoro è sottoposto a revisione paritaria
- Quando il lavoro è pronto per il test, l'SQL viene eseguito sul QA.
- Il lavoro è testato per il controllo qualità
- Quando il lavoro è pronto per la produzione, l'SQL viene eseguito sui database di produzione.
Il problema è che è molto manuale. Fa affidamento sul fatto che lo sviluppatore si ricordi di allegare sql o il peer-reviewer che lo prende se lo sviluppatore dimentica. A volte, finisce per essere il tester o il responsabile del QA che scopre il problema.
Un problema secondario è che a volte si finisce per dover coordinare manualmente le modifiche se due attività separate cambiano lo stesso oggetto di database. Potrebbe essere così, ma sembra che ci dovrebbe essere un modo automatizzato di "segnalare" questi problemi o qualcosa del genere.
La nostra configurazione: il nostro negozio di sviluppo è pieno di sviluppatori con molta esperienza DB. I nostri progetti sono molto orientati al DB. Siamo principalmente un negozio .NET e MS SQL. Attualmente stiamo utilizzando MS TFS Work Items per tracciare il nostro lavoro. Questo è utile per le modifiche al codice perché collega i changeset agli elementi di lavoro in modo che io possa scoprire esattamente quali cambiamenti devo includere durante la migrazione agli ambienti QA e Production. Al momento non stiamo usando un progetto DB ma potremmo passare a quello in futuro (forse questo fa parte della risposta).
Sono molto abituato al mio sistema di controllo del codice sorgente a occuparmi di cose del genere per me e vorrei avere la stessa cosa per il mio SQL.