2010-08-12 12 views
7

Stiamo utilizzando il modello di progetto del database SQL Server con VS 2010. Come parte del test di integrazione, vorrei avviare una nuova distribuzione del database. Ma a parte fare clic con il pulsante destro del mouse sul progetto e selezionare "Distribuisci". Non sembra essere una cosa semplice ottenere una nuova copia del database distribuito.Esiste una riga di comando per distribuire un progetto Sql Server Database?

La documentazione per questo tipo di progetto sembra sparsa o inesistente. Forse sto cercando nel posto sbagliato. Se possibile, includi un riferimento all'argomento.

Aggiornamento: I nostri test di integrazione vengono scritti come test di unità in Visual Studio. Quindi l'obiettivo sarebbe premere Esegui il pulsante Esegui test e prevedi l'esecuzione del database

risposta

5

Sono riuscito a trovare uno strumento da riga di comando per farlo. ed VSDBCMD.EXE e viene fornito con Visual Studio 2010. L'ho appreso per la prima volta su here (scroll to the bottom of the article), quindi ho seguito uno link and found the details of how to get it installed on my server.

Nel secondo articolo, se ci si trova su una macchina a 64 bit, non si troverà la directory VSTSDB in Programmi ... sarà necessario cercare in Programmi (x86).

Ho seguito le istruzioni alla lettera (installato sia la versione a 32 bit che a 64 bit di SQL CE) e funziona benissimo. Praticamente prendo l'output di una build dal mio progetto di database di SQL Server 2008, lo comprimo e lo metto sul server, quindi eseguo lo script di distribuzione.

La prima volta che l'ho fatto, il database di destinazione non esisteva. Lo strumento ha creato il database e lo ha impostato correttamente. Poi ho provato ad aggiungere una colonna a un tavolo nel mio progetto. Ho ricostruito il progetto e preso l'output e distribuito come prima, e ha modificato correttamente la tabella esistente, proprio come avrebbe fatto facendo clic con il tasto destro e selezionando Distribuisci.

Sembra funzionare bene finora. Spero che questo ti aiuti!

5

Per un'istanza di database nuova (non un aggiornamento incrementale a un database), MSDeploy dovrebbe fare il trucco. Here's un post rapido che ho trovato su l'argomento non l'ho ancora fatto, ma un collega dice che ha funzionato nel suo ambiente

Problemi correlati