Domanda

Chiunque utilizza Team Foundation Server per la gestione dei loro database? Attualmente stiamo utilizzando la sovversione. Squadra si lamenta che è difficile creare un processo di compilazione in TFS ed è shying lontano da esso.

Ogni buon puntatori, articoli, esperienze?

È stato utile?

Soluzione

DB di gestione del cambiamento non ha molto a che fare con la vostra scelta di sistemi di controllo versione, fino a quando ne hai uno in primo luogo. Naturalmente, se si utilizzano strumenti di gestione del cambiamento da MS si può essere abbastanza sicuri di essere stati testati contro TFS e il resto dello stack sviluppatore MS abbastanza bene. Questo è vero se si utilizza DBPro o in Estremo anziani / crappier forme di integrazione visto nel classico "progetto di database" VS o in attacchi progetto ridotta / soluzione di SQL Management Studio. Ma non c'è ragione per cui non è possibile utilizzare DBPro con Subversion, o Red Gate con TFS per quella materia.

Lo stesso vale per la generazione di build. CC.NET vs Team Build, NAnt vs MSBuild, ecc ... gli strumenti ufficiali di MS tendono ad essere più o meno alla pari con la concorrenza. Non hai descritto il processo di distribuzione DB in molti dettagli, ma io non riesco a capire che sarebbe stato molto più difficile per lo script in MSBuild di quello che stai usando ora, se non del tutto. Né è difficile scegliere set di strumenti diversi in diversi punti nella pila: si può avere unità CC.NET MSBuild a base di build che utilizzano implementare linea di comando di Red Gate, o qualsiasi altra combinazione. Mi capita di pensare alla stretta integrazione offerto da attaccare al mondo MS supera di gran lunga le stranezze in una qualsiasi strumento, ma la scelta è lì.

Mi permetta di arrivare al punto: suona come il problema principale non è tecnico, ma arrivare ai DBA di adottare effettivamente il controllo di versione, in primo luogo. Se il vostro "dev" e ambienti "prod" sono loro proprie entità viventi, piuttosto che le macchine generiche definiti esclusivamente dal risultato di qualche processo di generazione ripetibile, allora non stai molto usare il controllo di versione nel mio libro . Immaginate se uno sviluppatore client di tanto in tanto a mano ottimizzato le DLL su varie macchine di tutto l'azienda, poi lamentato che erano troppo difficili da sincronizzare; si potrebbe pensare che fosse pazzo.

Oltre a ciò, l'investimento più importante è di arrivare a un luogo in cui nulla è mai fatto per un DB direttamente (non più di quanto ci si frugare in% Programmi%). Se non è nel repository di origine, non esiste.

Non credo che come si arriva è importante. Si potrebbe scrivere tutti i vostri crea e altera in Blocco note, controllarli in dalla linea di comando, e avere il vostro "processo di costruire" essere uno script di shell 2-linea che li concatena in un file noto dove lo script deploy sa guardare . Oppure si potrebbe utilizzare uno strumento di fantasia come DBPro per amplificare la produttività con intellisense / unità di testing / offline di modellazione / ecc Ci sono ottimi motivi per dirigersi in quest'ultima direzione (soprattutto se si crede programmazione dichiarativa è qualcosa a lottare per in generale), ma io credo veramente il primo passo è il più grande.

Altri suggerimenti

Stiamo usando Visual Studio 2008 Team Suite con TFS. Sono stato in grado di importare le nostre banche dati in TFS con relativa facilità. Tuttavia, ho trovato che la maggior parte della squadra (compreso il DBA) dimentica di aggiornare TFS quando modificano un oggetto in SQL.

Qualsiasi tipo di processo di costruzione sta andando a fare affidamento su DB Pro per generare script di differenza tra l'ambiente dev e l'ambiente di destinazione. Ho trovato che questo è un problema perché il nostro ambiente dev non è una partita pulita per il nostro ambiente di produzione. Permessi sono certamente diverso e abbiamo un certo numero di altri casi in cui sono state applicate modifiche in dev / QA, ma non si mosse verso prod (ma sono stati anche mai invertiti). Cercando di isolare le modifiche da un sacco di altre variazioni del DB Pro è impegnativo, perché l'interfaccia utente ti fa escludere gli oggetti dallo script finale (quindi se si modificano 2 oggetti e altri 1000 sono diversi, è necessario deselezionare gli altri 1000 oggetti). Inoltre, la configurazione del confronto dello schema è spesso fatto in Strumenti-> Opzioni, mentre altri strumenti come Red Gate consentono di configurare il confronto sullo stesso schermo che si avvia.

Credo che lo strumento ha un potenziale ma abbiamo certamente bisogno di adattare le nostre procedure e sistemi esistenti per lavorare con TFS. Inoltre, avendo il controllo delle versioni sui vostri oggetti di database ha un valore inestimabile, anche se non è al 100% fino ad oggi.

Usiamo TFS con l'edizione del database.

Lo script di creazione del database deve script pubblicare per caricare i dati nel DB Dev.

Facciamo implementa regolari per ambiente dev. Tutti gli sviluppatori hanno SQL installato in locale e fare il proprio Get Latest e distribuzione.

In ambiente test di unità, gli account di accesso, database (OLTP e OLAP), replica, pacchetti ETL, SQL Lavoro, ecc sono tutti schierati nelle loro posizioni individuali e tutto è seminato.

Gli sviluppatori non apportare alcuna modifica al di fuori e non controllare le loro perché poi la distribuzione per unità di prova non funziona.

C'è molto di più opinione su questo in questa domanda Stack Overflow: Quali sono i vantaggi reali di visual Studio team System Database Edition (GDR)? (Non so perché, ma le mie ricerche mi ha portato a questa domanda, invece, e ho avuto un sacco di problemi a trovare opinioni su questo. Speriamo che questo link aiutare gli altri che svolgono la stessa ricerca.)

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