Come posso mantenere sincronizzato il mio progetto di database visualstudio con il mio database?


11

Vorrei che il mio schema di database fosse sincronizzato con il mio progetto di database .dbproj di Visual Studio.

In questo momento, sto usando SSMS per la maggior parte del mio lavoro di sviluppo del database e devo usare manualmente lo strumento di confronto dello schema di Visual Studio quando ho bisogno di sincronizzare lo schema db e .dbproj. Perché dovrei volerlo? perché :

  • È l'unico modo per verificare le modifiche
  • È l'unico modo per applicare le modifiche
  • In caso contrario, si verificheranno alcuni problemi di unione quando si ottengono i file (in sostanza, se un "get latest" contiene alcune modifiche di db su oggetti db che ho aggiornato senza verificarli, non verrà attivata un'unione ed è facile tenere traccia di quale versione è quale)
  • È bello poter utilizzare le funzionalità di ricerca di VisualStudio su una versione aggiornata dello schema
  • È bello poter modificare le procedure memorizzate da VS (in genere dopo aver rinominato un file) utilizzando i risultati della ricerca.

Oltre ad automatizzare lo strumento "schema compare" per farlo funzionare ogni 5 minuti (che a malapena sembra una soluzione "pulita"), ci sono modi per raggiungere questo obiettivo?

Mi piacerebbe continuare a usare SSMS se possibile, ma sono anche interessato ai modi per propagare automaticamente le modifiche apportate usando le "connessioni Server Explorer / Database" di Visual Studio su .dbproj.


hai trovato un modo per sincronizzare il tuo progetto di database con SSMS?

Risposte:


4

SQL Server Management Studio è principalmente uno strumento di GESTIONE di SQL Server e, come tale, non è necessariamente costruito per supportare gli scenari che stai cercando.

Visual Studio Team System 2008 Database Edition e Visual Studio Team System 2010 Pro / Ultimate includono gli strumenti Database Developer (VSDB) per aiutare coloro che dispongono di risorse di database estese a integrare il proprio schema di database / view / proc / etc. sviluppo con lo sviluppo delle loro app.

VSDB consente di decodificare gli schemi di DB esistenti in progetti di Visual Studio in modo da poter controllare i file di script per elemento dello schema. È inoltre possibile modificare / creare script dello schema di SQL Server per la creazione di praticamente tutti gli elementi dello schema supportati da SQL 2005/2008/2010.

VSDB supporta anche la possibilità di distribuire aggiornamenti dello schema di database completi / parziali su DB vuoti / esistenti in cui esegue una quantità ENORME di lavoro per cercare di applicare solo le modifiche necessarie per modificare il DB esistente (se presente) in modo che rispecchi la struttura di il progetto del database VSDB di origine.

VSDB include anche una serie di strumenti per aiutarti a confrontare gli schemi tra i progetti DB e / o DB e ti consente anche di diffondere e unire i contenuti della tabella.

Tuttavia, si noti che mentre questo set di strumenti è supportato oggi, il team è stato sciolto da allora e il prodotto è in modalità manutenzione. Il gruppo di prodotti SQL Server ora è responsabile della creazione di strumenti per gli sviluppatori e lavora sodo per farlo :)


1
Sono già un utente delle funzionalità di VS 2010. Ma devo ancora scoprire come usarlo per modificare contemporaneamente sia il mio progetto di database che il mio progetto di database allo stesso tempo. Eseguire un confronto di schemi dopo ogni singola modifica è troppo complicato ... :(
Brann

Avendo iniziato a guardare VSDB ieri, trovo il tuo ultimo paragrafo piuttosto allarmante. Sembra che non dovrei preoccuparmi di investire molto tempo o energia ...?
Benjol,

1

ci sono due modi che conosco con le caratteristiche di VS2010 per farlo.

  1. Utilizzare SSMS o altri strumenti per modificare lo schema DB, quindi eseguire periodicamente il confronto dello schema (fine giornata) e quindi importare eventuali modifiche dello schema nel progetto DB.
  2. Modificare i file nel progetto DB tramite VS e quindi creare un pacchetto di distribuzione che viene eseguito direttamente sul DB o genera uno script da eseguire per aggiornare lo schema nel DB.

La seconda soluzione è, a mio avviso, la soluzione migliore. È possibile impostare un processo di distribuzione che richiede solo un clic. La modifica dei file in Visual Studio li controllerà automaticamente dal controllo del codice sorgente. Ho lavorato con il primo metodo, ma è difficile fare sempre confronti sullo schema. Inoltre, almeno per me, lo strumento di confronto degli schemi provoca un arresto anomalo di Visual Studio.
Kris Harper,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.