2010-09-25 12 views
32

È possibile utilizzare GIT come controllo del codice sorgente per lo studio di gestione sql?Come utilizzare git come provider del controllo del codice sorgente per SQL Server Management Studio

+0

Non so su git, ma stiamo usando VisualSVN per gli script di controllo del codice sorgente di SQL Server. – juur

+0

Cosa hai finito per fare? Sembra semplice tenere traccia dei file .sql, sia in SMSS che in MSVS, ma per quanto riguarda i file di soluzione e di progetto? – tggagne

+0

@tggagne attualmente quello che ho fatto, è tenere traccia degli script sql sia vecchi che nuovi su un file system e tracciare quei file con GIT. Spero che questo sia il modo migliore per farlo su MS SQL Management Studio. Sono abbastanza sorpreso che Microsoft non fornisca questo.Credo che sarà più facile per tutti, se hanno la capacità di tenere traccia dei cambiamenti del proc memorizzato e delle viste o funzioni nello stesso studio di gestione di MS Sql. –

risposta

-3

Ci sono stati un certo numero di risposte intorno a questa domanda che si potrebbe desiderare di guardare, ma in poche parole ....

La natura del controllo di versione è quello di memorizzare il file originale e poi i delta, il la differenza tra il file originale impegnato e le successive modifiche (ok l'ho reso un po 'più semplice di quanto sia forse) e poi per gestire il numero di versione e dare gli strumenti per estrarre qualsiasi revisione particolare che ti serve. Ciò consente inoltre di confrontare revisioni precedenti e rollback (ecc. Ecc.)

L'RDBMS è costituito dallo schema e i dati e questi cambiano e possono cambiare frequentemente nel caso dei dati, quindi anche se si ha fatto VCS cosa vorresti confrontare per fare un ripristino e come sarebbe quello di aiuto? Supponendo che si disponga di un sistema live, il ripristino di una revisione precedente comporterebbe la perdita di tutti i dati memorizzati nel frattempo e, sebbene non l'abbia mai provato, sospetto possa distruggere l'integrità generale di RDBMS.

La soluzione migliore è utilizzare un'applicazione di backup creata per tale RDBMS, diciamo MySQLdump nel caso di MySQL che rende un'istantanea dei dati e della struttura dei dati e li memorizza in un luogo sicuro.

Dump può essere programmato regolarmente e si possono fare cose come i database master/slave (o altre strategie) in modo da poter di backup database di produzione in tempo reale al volo senza impattare sulle prestazioni

+2

Credo che l'OP chieda informazioni sul controllo del codice sorgente per DDL e script, non su come eseguire il backup di un database completo. – Pondlife

+0

Sì, mi sembra che mi scusi, quindi sta chiedendo come si controlla il controllo di un'applicazione? – PurplePilot

+1

non è anche vero che la natura del controllo della versione, in generale, è quella di memorizzare il file originale e quindi i delta. non è così che funziona git, per esempio. – asymmetric

1

Dal SSMS è (più o meno) una versione personalizzata di Visual Studio, si potrebbe essere in grado di utilizzare una soluzione destinata al VS:

Using Git with Visual Studio

in alternativa, gestire il codice sorgente di DB in Visual Studio fin dall'inizio, non in SSMS. In questo modo (almeno in VS2010) sono disponibili progetti di database, implementazione integrata e test delle unità, ecc. Oppure, se sei pronto, continua a utilizzare il SSMS e a verificare il codice da uno strumento esterno (non così conveniente, ovviamente).

Ma dipende esattamente da ciò che si sta facendo: SSMS è uno strumento DBA, VS è uno strumento di sviluppo. Ad ogni modo, dovresti usare qualche forma di controllo del codice sorgente, ma non è chiaro dalla domanda esattamente quale tipo di file hai bisogno per la versione.

2

Red Gate controllo del codice sorgente SQL è stato aggiornato per includere Git e Mercurial supporto (così come Perforce e TFS). Essere consapevoli del fatto che la loro integrazione DVCS non è completa al 100% in relazione al loro prodotto SVN, in quanto le funzionalità di base come la cronologia di visualizzazione di un oggetto non sono supportate all'interno di SSMS. Questo può essere un affare se altri strumenti di Red Gate come SQL Compare fanno parte del tuo flusso di lavoro.

La soluzione alternativa era installare TortoiseGit o GitExtensions e accedere al repository su disco per eseguire il drill nelle specifiche. Funziona ma è un po 'goffo.

4

Si potrebbe aggiungere Git Bash come uno strumento esterno (Strumenti | Strumenti esterni ...):

+0

o semplicemente Git Bash da una riga di comando. Non è così male. – Jess

+3

Presumo che questo non renda magicamente Git in grado di tracciare gli oggetti SQL come se fossero file. Puoi approfondire ciò che effettivamente fa? – MarredCheese

8

Ho scoperto che ApexSQL ha uno strumento che supporta nativamente Git come sistema di controllo del codice sorgente. Viene fornito come un componente aggiuntivo SSMS e offre una procedura guidata che è possibile utilizzare per mappare gli oggetti del database con i sistemi di controllo del codice sorgente. Per fare questo:

  1. Scaricare e installare ApexSQL Source Control
  2. Avvio SSMS e in Esplora oggetti selezionare il database che si desidera essere collegato a un controllo origine
  3. Fare clic con il database, e formano il menu di contesto, selezionare l'opzione Collega database al controllo origine, dal sottomenu Controllo origine ApexSQL
  4. Selezionare il sistema di controllo del codice sorgente (nel caso specifico è Git) e scegliere tra 2 modelli di sviluppo del database: condivisi o dedicati. Si consiglia il modello condiviso quando si collega un database in cui più sviluppatori funzioneranno allo stesso tempo Database development model - choose between shared or dedicated
  5. Oggetti del filtro che non si desidera tracciare utilizzando il controllo del codice sorgente: per schema, tipo o nome per schema, tipo o nome
  6. Fornire le informazioni di accesso appropriate e la stringa di repository. Per Git è: <protocol>://<hostname>:<portnumber>/<Git server name>/<repository> (vedi esempio qui sotto): Log into Git source control system

più dettagliate istruzioni passo-passo può essere trovato in questo articolo: http://knowledgebase.apexsql.com/link-database-source-control-system-2/

0

VersionSQL è un modulo aggiuntivo di controllo di origine SSMS in ho progettato per essere leggero e facile da usare. Nel pannello Esplora oggetti, fai clic con il pulsante destro del mouse su un database o un oggetto e fai clic su Conferma. VersionSQL lo codificherà su Git/SVN in una struttura di cartelle ben organizzata.

controllo fuori a https://www.versionsql.com

Problemi correlati