Den här artikeln är en genomgång av hur du använder alternativet för arbetsmapp för källkontroll för att hantera SQL Server-databaser.
I den här artikeln understryker jag också några av fördelarna och begränsningarna med att använda en arbetsmapp jämfört med andra tillgängliga alternativ att använda med källkontroll.
Låt oss diskutera några nyckelbegrepp innan vi går in i de tekniska detaljerna i den här artikeln.
Nyckelbegrepp
Vad är källkontroll
Källkontroll är ett system eller (en del av den bästa programvaran) praxis som håller reda på alla ändringar i koden som görs av utvecklare.
Varför behövs källkontroll
Applikationskoden som skrivits av utvecklarna måste sparas då och då på ett sådant sätt att alla ändringar som gjorts av en utvecklare inte bara kan spåras tillbaka utan även återställas om det behövs.
Av denna anledning sätts applikationskoden under källkontroll för att se till att historiken för alla ändringar tillsammans med kommentarer hålls väl, plus det finns många andra fördelar med att använda källkontroll, som ligger utanför ramen för denna artikel.
Källkontroll vs versionskontroll
Det finns ingen skillnad mellan källkontroll och versionskontroll och oftast används dessa två termer fritt omväxlande.
Sätter vi databaser under källkontroll
Precis som applikationskod behöver även databasobjekt som tabeller, vyer, lagrade procedurer etc. vara versionsstyrda. Metoden att sätta databasobjekt under källkontroll är dock något och i vissa fall helt annorlunda än när applikationskoden ställs under källkontroll.
Exempel på versionskontrollerande databas
Anta att du skapar en exempeldatabas som heter "Bilar" enligt affärskrav.
Sedan skapar du en tabell som heter "Bil" med CarId och CarName kolumner för att uppfylla ett annat krav.
I din frånvaro tilldelas en annan utvecklare en uppgift att lägga till CarType kolumnen till tabellen "Bil".
Han bestämmer sig för att ta bort CarName kolumnen tror att det inte är nödvändigt och ersätt den med CarType kolumn.
Du kommer tillbaka efter en lång tid och är förvånad över att se ditt CarName kolumnen saknas inte bara utan är också ersatt med CarType kolumn.
Nu kommer du inte ihåg den ursprungliga datatypen och längden du valde för CarName såvida du inte går igenom hela uppsättningen av affärskrav.
Vänta en minut! Det här problemet kan enkelt lösas om du har övervägt att använda källkontroll för din databas i första hand. Då kan du enkelt se den första ändringen du har gjort, som innehåller kolumndefinitionen och sedan den andra ändringen gjord av en annan utvecklare.
Så du och den andra utvecklaren sitter tillsammans och går igenom de historiska ändringarna som gjorts i databasen (objektet) med hjälp av källkontroll som håller reda på varje enskild ändring som görs av en utvecklare i databasen.
Detta illustreras enligt följande:
Viktigaste användningen av källkontroll
En av huvudskälen till att använda källkontroll är att kunna underhålla flera versioner av koden samtidigt genom att skapa följande grenar av koden:
- Dev (utvecklingsgren)
- Test (Testgren)
- QA (QA branch)
- Prod (produktionsgren)
De tekniska detaljerna för att skapa utvecklings-, test-, kvalitetssäkrings- och produktionsgrenar från källkontroll ligger utanför ramen för denna artikel.
Förutsättningar
Den här artikeln är bäst lämpad för de läsare som uppfyller följande krav:
Grundläggande kunskaper om T-SQL
Du måste ha en del grundläggande T-SQL-kunskaper för att skapa, fråga och ändra databasobjekt såsom tabeller, vyer och lagrad procedur.
Verktyg för databasutveckling
Du måste ha SSMS (SQL Server Management Studio) eller dbForge Studio för SQL Server installerad på din maskin för att skapa och hantera databaser och deras objekt.
Tillgänglighet för arbetsmappsdatakälla
Även om alla källkontroller som erbjuder alternativet för arbetsmapp är bra, rekommenderas att du använder dbForge Source Control för att följa alla steg i genomgången i den här artikeln.
Källkontroll för arbetsmapp
Working Folder med begränsad funktionalitet för att versionskontrollera databasobjekt kan användas precis som andra källkontrollsystem som TFS, Git etc.
En arbetsmapp innehåller helt enkelt SQL-skriptfiler som används för att skapa och hantera databasobjekt.
När ska man använda Working Folder
Anta att du vill skapa en databas och dess relaterade objekt från början men ännu inte säker på vilken källkontroll ditt team kommer att använda i slutändan. Då är det bättre att börja med källkontrollalternativet för arbetsmappen.
En annan anledning kan vara när du helt enkelt vill lagra databasens aktuella tillstånd och inte är intresserad av att hålla reda på de historiska ändringarna, då är arbetsmappen en bra kandidat för att användas som källkontroll.
Begränsning av arbetsmapp
Working Folder to version control databasobjekt är begränsad när det gäller att behålla den senaste versionen av databasen och dess objekt och det finns inget sätt att spåra ändringarna eller återställa dem.
Så du måste vara försiktig när du använder Working Folder som ditt källkontrollalternativ eftersom den inte kan visa dig alla ändringar som gjorts i databasen och dess objekt från tid till annan.
Genomgång:Länka databas till arbetsmapp
Låt oss gå igenom stegen för att länka din databas till en arbetsmapp med hjälp av källkontroll.
Krav för att lägga till bok och boktyp
Du har fått interna krav för att skapa en testdatabas som heter "SQLBookShopV2" som innehåller följande två tabeller:
- Boka
- Boktyp
Databasen kräver inte nödvändigtvis en källkontroll vid denna tidpunkt och det är inte viktigt att hålla reda på alla ändringar som görs.
Kontrollera kraven
Det är ofta bra att dubbelkolla kraven innan du använder en fungerande mapp. En arbetsmapp är bäst lämpad om du blir ombedd att skapa en databas med följande krav:
- Testdatabas eller databasprototyp krävs
- Databasändringshistorik är inte obligatorisk
- Beslutet vilken källkontroll som slutligen kommer att användas är ännu inte beslutat
Konfigurera arbetsmapp
Det första steget är att avsätta en mapp där dina testdatabasskript kommer att finnas efter att du har börjat checka in din databaskod i arbetsmappen.
Skapa en ny mapp som heter "SQLBookShopV2 Scripts" under C Drive.
Konfigurera SQLBookShopV2 exempeldatabas
Öppna dbForge Studio för SQL Server och från Databas-menyn klicka på "Ny databas":
Skriv "SQLBookShopV2" i namnet på databasen och klicka på knappen "Apply Changes" längst ned i fönstret:
Länka databas till arbetsmapp
Det är bättre att få databasen länkad till källkontrollen direkt efter att den har skapats.
Högerklicka på databasen (SQLBookShopV2) och välj Källkontroll à Länka databas till källkontroll menyalternativ:
Leta reda på arbetsmappen som skapats tidigare för att länka den till databasen:
Du kan välja önskad databasutvecklingsmodell. Vi väljer utvecklingsmodellen för delad databas:
Kontrollera den lilla källkontrollikonen bredvid databasen som bekräftar att databasen har länkats till arbetsmappens källkontroll:
Skapa bokbord
Högerklicka på Tabell och klicka sedan på Ny tabell och skapa en boktabell med följande kod och tillämpa ändringar:
SKAPA TABELL SQLBookShopV2.dbo.Book ( BookId INT IDENTITY ,BookTitle VARCHAR(50) NOT NULL ,Notes VARCHAR(200) ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId))GO
Bekräfta ändringar av databaskod
Eftersom vi har skapat en ny tabell i databasen måste dessa lokala ändringar plockas upp av källkontrollen för att kunna sparas.
Öppna källkontrollhanteraren (som visar de senaste ändringarna som ska sparas) genom att högerklicka på databasen och sedan klicka på Källa à Visa källkontrollhanteraren
Klicka på Beslut för att checka in i arbetsmappens källkontroll:
Kontroll av arbetsmapp
Gå till din arbetsmapp och se tabellobjektet sparat där som ett resultat av den senaste commit:
Skapa BookType-tabell
Skapa en annan tabell BookType med följande kod:
SKAPA TABELL SQLBookShopV2.dbo.BooKType ( BookTypeId INT IDENTITY ,Namn VARCHAR(50) NULL ,Detalj VARCHAR(200) NULL ,CONSTRAINT PK_BooKType_BookTypeId PRIMÄRNYCKEL CLUSTERED (KLUSTERAD) Bok
Lägg till tabell till källkontroll
Lägg till den nyskapade tabellen till källkontrollen med samma metod som nämnts tidigare och kontrollera sedan arbetsmappen för att se att båda tabellerna finns där:
Grattis! Du har framgångsrikt länkat din databas till källkontrollen för arbetsmappen.
Försiktighetsåtgärder för arbetsmapp
Kom ihåg en fungerande mapp i sin rena form eftersom en källkontroll är precis som en vanlig Windows-mapp och om den ändras externt kan den inte längre komma ihåg dess senaste tillstånd.
Om vi till exempel tar bort Book.sql-koden från arbetsmappen och sedan kontrollerar om det finns några ändringar med Source Control Manager, måste vi lägga till boktabellskoden igen i arbetsmappen.
Ansvaret för att säkra arbetsmappen ligger på utvecklarnas axlar snarare än källkoden (i dess ursprungliga form) om du inte strikt följer lösningen som har visat sig vara framgångsrik.
Saker att göra
Du kan nu enkelt placera dina databasobjekt med hjälp av källkontrollalternativet Working Folder:
- Försök att skapa en annan databas genom att länka boken tabell med BookType tabell på ett sådant sätt att BookTypeId primärnyckeln för BookType tabellen skickas som BookTypeId kolumnen för främmande nyckel i boken tabell efter att ha använt källkontroll för arbetsmapp.
- Försök att skapa en lagrad procedur som heter AddBook för att lägga till en ny bok i boken tabell efter att ha länkat din databas med källkontroll för arbetsmapp.
- Försök att skapa en databasvy Böcker för att se listan över alla böcker med deras typer och kontrollera alla ändringar i källkontrollen för arbetsmapp.
Mer läsning:
Spåra databasändringar med hjälp av källkontroll för arbetsmapp
Användbart verktyg:
dbForge Source Control – kraftfullt SSMS-tillägg för att hantera SQL Server-databasändringar i källkontroll.