Domanda

Vi prego di scusarmi, oggi è il mio primo giorno cercando di impostare un ambiente CI utilizzando TeamCity. Sto sviluppando un app ASP.NET/Sql Server e fin qui tutto bene. MSBuild è il mio fornitore.

Mi piacerebbe sapere quali sono le opzioni quando si tratta di fare automaticamente che i cambiamenti al mio database locale vengono caricati sul server di test come parte del processo di integrazione. Ora io non sono troppo sicuro io voglio andare in direzione di DBGhost per sincronizzare automaticamente le modifiche dello schema, sarei felice di sostituire solo il database sul server di prova con una copia del mio database locale.

Quali sono le opzioni qui?

modifica: ulteriori indagini mostra i prodotti Redgate SQL sono buoni per questo. Arent a buon mercato però. Hanno un bel white paper su utilizzando i loro prodotti all'interno di un processo di integrazione continua: http: // downloads .red-gate.com / HelpPDF / ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

È stato utile?

Soluzione

Prima di tutto, penso che il database dovrebbe essere incluso nella vostra strategia di controllo del codice sorgente. Principi di base per raggiungere questo obiettivo sono stati ben riassunta in K. Scott Allen serie . È inoltre possibile controllare Evolutionary Database Design by Martin Fowler . E per informazioni più pratiche, controllare le risposte a Come si dovrebbe costruire il database dal controllo di origine? .

Come ho scritto nel mia risposta , io sostengo due set di script: un insieme che può costruire il database da zero, e uno che può aggiornare un database da una versione precedente. Come parte di una strategia di CI:

  • Il database sul server CI deve essere ricostruita da zero utilizzando questi script. È quindi possibile controllare che gli script sono in condizione di lavoro.
  • In un mondo perfetto, dovrei essere in grado di eseguire un aggiornamento dalla versione N-1 alla versione N del database e confrontare lo schema ottenuto allo schema del database precedente. Sto ancora lavorando su di esso ...
  • Dati
  • di prova deve essere iniettato nel database, consentendo di unit testing dell'applicazione da eseguire (si potrebbe uso BCP per questo).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top