Domanda

Sto cercando alcune "Best Practices" per automatizzare l'implementazione di Stored Procedure/Vista/Funzioni/modifiche della Tabella dal controllo del codice sorgente.Sto usando StarTeam & ANT così l'etichettatura è preso cura;quello che sto cercando è come alcuni di voi hanno contattato automatizzare il pull di questi oggetti da fonte - non necessariamente StarTeam.

Vorrei finire con uno script che può quindi essere eseguita, check-in, e con etichetta.

NON chiedo a nessuno di scrivere che - solo alcune idee e approcci che hanno (o non hanno) lavorato in passato.

Sto cercando di ripulire un pasticcio e si desidera assicurarsi di ottenere questo come vicino di "destra" come posso.

Siamo la memorizzazione di tabelle/viste/funzioni etc.in singoli file in StarTeam e il nostro DB è SQL 2K5.

È stato utile?

Soluzione

Usiamo SQL compare da redgate (http://www.red-gate.com/).

Abbiamo un database di produzione, sviluppo di database e di ogni sviluppatore ha la propria base dati.

Il database di sviluppo è sincronizzata con le modifiche che uno sviluppatore ha fatto per loro database al momento del check-in i loro cambiamenti.

Lo sviluppatore, inoltre, i controlli in un apposito script e un rapporto di confronto generato da SQL Confrontare.

Quando ci distribuire la nostra applicazione, abbiamo semplicemente sincronizzare il database di sviluppo con la produzione di un database con SQL Confrontare.

Questo funziona per noi perché la nostra applicazione è per uso solo.Se questo non è il vostro scenario quindi vorrei guardare SQL Packager (anche da redgate).

Altri suggerimenti

Il Check-in Migrazioni (segnalato da Andrea Peters in un altro post)

Io preferisco separare viste, procedure e trigger (oggetti che possono essere ri-creati) dalle tabelle.Per le viste, le procedure e trigger, basta scrivere un lavoro che si occuperà di verificare e ri-creare la più recente.

Per le tabelle, io preferisco avere una versione del database tabella con una riga.Utilizzare la tabella per determinare che cosa i nuovi aggiornamenti non sono stati applicati.Quindi ogni aggiornamento viene applicato e il numero di versione è aggiornata.Se l'aggiornamento non riesce, si ha solo l'aggiornamento al controllo e si può ri-eseguire sapere che i precedenti aggiornamenti non accadrà di nuovo.

Come Carl sottolineato è possibile utilizzare un diff utility per creare il vostro script di aggiornamento.RedGate rende un buon prodotto, ma SQL Server 2k5 navi con TableDiff che dovrebbe fare il lavoro come bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top