Database
 sql >> Database >  >> RDS >> Database

Utilizzo della cartella di lavoro nel database di controllo del codice sorgente

Questo articolo è una procedura dettagliata su come utilizzare l'opzione della cartella di lavoro del controllo del codice sorgente per la gestione dei database di SQL Server.

In questo articolo, sottolineerò anche alcuni dei vantaggi e dei limiti dell'utilizzo di una cartella di lavoro rispetto ad altre opzioni disponibili da utilizzare con il controllo del codice sorgente.

Discutiamo alcuni concetti chiave prima di approfondire i dettagli tecnici di questo articolo.

Concetti chiave

Cos'è il controllo del codice sorgente

Il controllo del codice sorgente è un sistema o (parte della migliore pratica software) che tiene traccia di tutte le modifiche apportate al codice dagli sviluppatori.

Perché è necessario il controllo del codice sorgente

Il codice dell'applicazione scritto dagli sviluppatori deve essere salvato di volta in volta in modo tale che tutte le modifiche apportate da qualsiasi sviluppatore possano non solo essere rintracciate ma anche ripristinate se necessario.

Per questo motivo, il codice dell'applicazione viene messo sotto il controllo del codice sorgente per assicurarsi che la cronologia di tutte le modifiche insieme ai commenti sia ben conservata, inoltre ci sono molti altri vantaggi dell'utilizzo del controllo del codice sorgente, che esulano dallo scopo di questo articolo.

Controllo sorgente e controllo versione

Non c'è differenza tra il controllo del codice sorgente e il controllo della versione e per lo più questi due termini sono usati liberamente in modo intercambiabile.

Mettiamo i database sotto il controllo del codice sorgente

Proprio come il codice dell'applicazione, anche gli oggetti del database come tabelle, viste, procedure archiviate ecc. devono essere controllati dalla versione. Tuttavia, il metodo per mettere gli oggetti del database sotto il controllo del codice sorgente è leggermente e in alcuni casi completamente diverso da quando il codice dell'applicazione viene messo sotto il controllo del codice sorgente.

Esempio di database di controllo della versione

Supponiamo di creare un database di esempio chiamato "Automobili" secondo i requisiti aziendali.

Quindi crei una tabella chiamata "Car" con CarId e CarName colonne per soddisfare un altro requisito.

In tua assenza, a un altro sviluppatore viene assegnato un compito per aggiungere il CarType colonna alla tabella "Auto".

Decide di rimuovere il CarName colonna pensando che non sia richiesto e sostituirlo con il CarType colonna.

Torni dopo molto tempo e sei sorpreso di vedere che il tuo CarName la colonna non solo manca, ma viene anche sostituita con CarType colonna.

Ora non ricordi il tipo di dati originale e la lunghezza che hai scelto per CarName a meno che tu non esamini l'intera serie di requisiti aziendali.

Apetta un minuto! Questo problema può essere facilmente risolto se hai considerato in primo luogo l'utilizzo del controllo del codice sorgente per il tuo database. Quindi puoi facilmente vedere la prima modifica in assoluto che hai apportato, che contiene la definizione della colonna e poi la seconda modifica eseguita da un altro sviluppatore.

Quindi, tu e l'altro sviluppatore sedete insieme ed esaminate le modifiche storiche apportate al database (oggetto) utilizzando il controllo del codice sorgente che tiene traccia di ogni singola modifica apportata da qualsiasi sviluppatore sul database.

Questo è illustrato come segue:

Utilizzo più importante del controllo del codice sorgente

Uno dei motivi principali per utilizzare il controllo del codice sorgente è poter mantenere più versioni del codice contemporaneamente creando i seguenti rami del codice:

  1. Dev (ramo Sviluppo)
  2. Test (ramo di test)
  3. QA (filiale QA)
  4. Prod (ramo di produzione)

I dettagli tecnici della creazione di rami Sviluppo, Test, QA e Produzione dal controllo del codice sorgente esulano dallo scopo di questo articolo.

Prerequisiti

Questo articolo è più adatto per quei lettori che soddisfano i seguenti requisiti:

Conoscenza di base di T-SQL

Devi avere una conoscenza di base di T-SQL per creare, interrogare e modificare oggetti di database come tabelle, viste e stored procedure.

Strumenti di sviluppo database

Devi avere SSMS (SQL Server Management Studio) o dbForge Studio per SQL Server installato sul tuo computer per creare e gestire i database e i loro oggetti.

Disponibilità dell'origine dati della cartella di lavoro

Sebbene qualsiasi controllo del codice sorgente che offra l'opzione della cartella di lavoro vada bene, si consiglia di utilizzare il controllo del codice sorgente dbForge per seguire tutti i passaggi della procedura dettagliata in questo articolo.

Controllo del codice sorgente della cartella di lavoro

La cartella di lavoro con funzionalità limitate agli oggetti del database di controllo della versione può essere utilizzata proprio come altri sistemi di controllo del codice sorgente come TFS, Git ecc.

Una cartella di lavoro contiene semplicemente file di script SQL utilizzati per creare e gestire oggetti di database.

Quando utilizzare la cartella di lavoro

Si supponga di voler creare un database e i relativi oggetti da zero, ma non si è ancora sicuri di quale controllo sorgente utilizzerà il proprio team. Quindi è meglio iniziare con l'opzione di controllo del codice sorgente della cartella di lavoro.

Un altro motivo potrebbe essere quando si desidera semplicemente archiviare lo stato corrente del database e non si è interessati a tenere traccia delle modifiche storiche, quindi la cartella di lavoro è un buon candidato da utilizzare come controllo del codice sorgente.

Limitazione della cartella di lavoro

La cartella di lavoro per gli oggetti del database di controllo della versione è limitata in termini di conservazione della versione più recente del database e dei relativi oggetti e non è possibile risalire alle modifiche o ripristinarle.

Quindi, devi stare attento quando usi Cartella di lavoro come opzione di controllo del codice sorgente perché non può mostrarti tutte le modifiche apportate al database e ai suoi oggetti di volta in volta.

Procedura dettagliata:collegamento del database alla cartella di lavoro

Esaminiamo i passaggi per collegare il database a una cartella di lavoro utilizzando il controllo del codice sorgente.

Requisiti per aggiungere libro e tipo di libro

Hai ricevuto i requisiti interni per creare un database di test chiamato "SQLBookShopV2" che contiene le due tabelle seguenti:

  1. Prenota
  2. Tipo libro

Il database non richiede necessariamente un controllo del codice sorgente a questo punto e non è importante tenere traccia di tutte le modifiche apportate.

Verifica i requisiti

Spesso è buona norma ricontrollare i requisiti prima di utilizzare una cartella di lavoro. Una cartella di lavoro è più adatta se ti viene chiesto di creare un database con i seguenti requisiti:

  1. È richiesto un database di test o un prototipo di database
  2. La cronologia delle modifiche al database non è obbligatoria
  3. La decisione su quale controllo del codice sorgente verrà utilizzato alla fine non è stata ancora decisa

Imposta cartella di lavoro

Il primo passaggio consiste nel mettere da parte una cartella in cui risiedono gli script del database di test dopo aver iniziato a controllare il codice del database nella cartella di lavoro.

Crea una nuova cartella denominata "SQLBookShopV2 Scripts" in C Drive.

Impostazione del database di esempio di SQLBookShopV2

Aprire dbForge Studio per SQL Server e dal menu Database fare clic su "Nuovo database":

Digita "SQLBookShopV2" nel nome del database e fai clic sul pulsante "Applica modifiche" nella parte inferiore della finestra:

Collega il database alla cartella di lavoro

È meglio collegare il database al controllo del codice sorgente subito dopo averlo creato.

Fare clic con il pulsante destro del database (SQLBookShopV2) e selezionare la voce di menu Controllo del codice sorgente à Collega database al controllo del codice sorgente:

Individua la cartella di lavoro creata in precedenza per collegarla al database:

È possibile scegliere il modello di sviluppo del database desiderato. Stiamo scegliendo il modello di sviluppo del database condiviso:

Controlla la piccola icona del controllo del codice sorgente accanto al database che conferma che il database è stato collegato correttamente con il controllo del codice sorgente della cartella di lavoro:

Crea tavolo libro

Fai clic con il pulsante destro del mouse su Tabelle quindi fai clic su Nuova tabella e crea la tabella dei libri utilizzando il seguente codice e applica le modifiche:

CREATE TABLE SQLBookShopV2.dbo.Book (
  BookId INT IDENTITY
 ,BookTitle VARCHAR(50) NOT NULL
 ,Notes VARCHAR(200)
 ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
)
GO

Imposta modifiche al codice del database

Poiché abbiamo creato una nuova tabella nel database, queste modifiche locali devono essere raccolte dal controllo del codice sorgente per essere salvate.

Apri Gestione controllo codice sorgente (che mostra le ultime modifiche da salvare) facendo clic con il pulsante destro del mouse sul database e quindi su Sorgente à Mostra Gestione controllo codice sorgente

Fai clic su Impegna per controllare nel controllo del codice sorgente della cartella di lavoro:

Verifica cartella di lavoro

Vai alla tua cartella di lavoro e guarda l'oggetto tabella salvato lì come risultato dell'ultimo commit:

Crea tabella BookType

Crea un'altra tabella BookType utilizzando il seguente codice:

CREATE TABLE SQLBookShopV2.dbo.BooKType (
  BookTypeId INT IDENTITY
 ,Name VARCHAR(50) NULL
 ,Detail VARCHAR(200) NULL
 ,CONSTRAINT PK_BooKType_BookTypeId PRIMARY KEY CLUSTERED (BookTypeId)
)
GO

Aggiungi tabella al controllo del codice sorgente

Aggiungi la tabella appena creata al controllo del codice sorgente utilizzando lo stesso metodo menzionato in precedenza, quindi controlla la cartella di lavoro per verificare che siano presenti entrambe le tabelle:

Congratulazioni! Hai collegato correttamente il tuo database al controllo del codice sorgente della cartella di lavoro.

Precauzioni per la cartella di lavoro

Ricorda che una cartella di lavoro nella sua forma pura poiché un controllo del codice sorgente è proprio come una normale cartella di Windows e se viene modificata esternamente, non può più ricordare il suo stato più recente.

Ad esempio, se eliminiamo il codice Book.sql dalla cartella di lavoro e quindi controlliamo eventuali modifiche utilizzando Gestione controllo codice sorgente, dovremo aggiungere nuovamente il codice tabella Book nella cartella di lavoro.

La responsabilità di proteggere la cartella di lavoro ricade sulle spalle degli sviluppatori piuttosto che sul codice sorgente (nella sua forma originale), a meno che tu non segua rigorosamente la soluzione alternativa che si è rivelata efficace.

Cose da fare

Ora puoi inserire facilmente i tuoi oggetti di database utilizzando l'opzione di controllo del codice sorgente della cartella di lavoro:

  1. Prova a creare un altro database collegando il Libro tabella con il BookType tabella in modo tale che il BookTypeId chiave primaria del BookType la tabella viene passata come BookTypeId colonna chiave esterna nel Libro tabella dopo aver utilizzato il controllo del codice sorgente della cartella di lavoro.
  2. Prova a creare una procedura memorizzata denominata AddBook per aggiungere un nuovo libro al Libro tabella dopo aver collegato il database con il controllo del codice sorgente della cartella di lavoro.
  3. Prova a creare una vista del database Libri per visualizzare l'elenco di tutti i libri con i relativi tipi e controllare tutte le modifiche nel controllo del codice sorgente Cartella di lavoro.

Ulteriori letture:

Monitoraggio delle modifiche al database utilizzando il controllo del codice sorgente della cartella di lavoro

Strumento utile:

dbForge Source Control – potente componente aggiuntivo SSMS per la gestione delle modifiche al database di SQL Server nel controllo del codice sorgente.