Domanda

La mia squadra sta valutando strumenti e processi per la gestione di database di migrazioni / database di refactoring come descritto da Martin Fowler, Pramod Sadalage, et. al. Siamo interessati a automatizzati, ripetibili, processi verificabili, quindi non siamo interessati a tecniche come la corsa manualmente SQL Compare ogni volta che si distribuisce. Al momento stiamo utilizzando CruiseControl.NET per l'integrazione continua.

Il nostro ambiente di produzione ha più server di database SQL Server 2000 con la replica tra loro. Le nostre migrazioni saranno quindi apportare modifiche allo schema sia sul server database di origine e di destinazione.

Per eseguire una tale migrazione con uno strumento come dbdeploy, sembra avremmo bisogno di eseguire la migrazione contro uno dei server, e avremmo dovuto aggiungere altri server come server collegati. Un singolo script in esecuzione sul server principale potrebbe quindi eseguire DDL contro uno qualsiasi dei server collegati.

La mia domanda è questa: sarebbe questo approccio essere considerato una best practice, o c'è una tecnica migliore per l'applicazione di migrazioni che toccano più server di database

È stato utile?

Soluzione

Non vedo nulla di intrinsecamente sbagliato in questo approccio, tuttavia quando la sua creazione da essere sicuri di testare cosa succede quando uno dei server collegati è giù. Se non si desidera essere rollback tutti gli altri server, se ci capita di essere verso il basso e si vuole conoscere le modifiche non sono state applicate a quel server.

Naturalmente il primo, le migliori pratiche più importante per qualsiasi migrazione è fare in modo di avere un processo di backup solida in atto prima di iniziare la migrazione modifiche.

Altri suggerimenti

Visual Studio 2008 (Team Edition, appositamente GDR) in grado di gestire la distribuzione automatica di schemi contro il file / metadata schema definito che è possibile distribuire ai server. Questo potrebbe essere incluso nel processo di compilazione / deploy. Tuttavia, penso che ci sia ancora un problema su modifiche di replica e di schema - non esiste un pacchetto che comprende / è a conoscenza della vostra installazione di replica.

Per esempio, utilizzare procedure di replica personalizzate per l'abbonato e, anche se le modifiche dello schema propagano dalla casa editrice che a volte devono manualmente copione cambia a seconda di qualsiasi replica personalizzato che abbiamo in atto. Se non si utilizza procs di replica personalizzato, direi che questa è stata la strada da percorrere.

Si può provare una combinazione di Chinchillin e Wizardby :. installare gli agenti Chinchillin su server DB e farlo eseguire script di migrazione Wizardby durante il processo di distribuzione

Questa integrazione è nei lavori, però:)

Qui a Red Gate ora abbiamo una soluzione ripetibile migrazioni che utilizza SQL Compare e controllo del codice sorgente SQL. La riga di comando SQL Confronta può quindi essere utilizzato per sostenere un processo di integrazione continua.

http://www.red-gate.com/MessageBoard /viewtopic.php?t=14107

E 'attualmente un accumulo accesso anticipato, quindi siamo ansiosi di ottenere quanto più feedback possibile.

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