SQL Server Database Project na VS 2012

SQL Server Database Project template se koristi za kreiranje database projekata u Visual Studi-u a kroz koje se kreiraju database objekti i radi njihov deploy na MS SQL Server na razvojnm, testnom ili produkcionom okruženju. Database Project-i takođe omogućavaju komparaciju objekata u okviru različitih projekata ili komparaciju objekata na projektu i objekata na konkretoj bazi na MS SQL Serveru.

SQL Server Database Project templejt se u MS Visual Studiu 2012 nalazi u okviru Other Languages > SQL Server grupe templejta (slika 1).

DbProjOnVS2012_1

Slika 1. SQL Server Database Project templejt

Obično se na Visual Studiu 2012 posle pokretanja kreiranja novog projekta korišćenjem SQL Server Database Project templejta javi greška (slika 2).

DbProjOnVS2012_2

Slika 2. Greška kod pokušaja kreiranja novog projekta

Da bi se ovaj problem rešio potrebno je instalirati SQL Server Data Tools – June 2013 update (slika 3) koji se može instalirati ili download-ovati pa instalirati sa lokacije:

http://msdn.microsoft.com/en-us/jj650015

DbProjOnVS2012_3

Slika 3. Instalacioni wizard za SQL Server Data Tools – June 2013 update

DbProjOnVS2012_4

Slika 4. Novokreirani SQL Server Database Project

Treba imati na umu da jedan projekat na Visual Studiu odgovara jednoj bazi na MS SQL Server-u.

Ako se na projekat u Solution Explorer-u klikne desnim tasterom miša i izabere opcija “Properties” dobija se forma (slika 5) u kojoj je moguće izabrati target platformu. Može se izabrati jedna od opcija: SQL Server 2005, 2008, 20012 i Windows Azure SQL Database. Pored toga mogu se podešavati i ostala setovanja ciljne baze koja će biti na ciljnom serveru kreirana iz projekta njegovim deployment-om.

DbProjOnVS2012_5

Slika 5. Forma za podešavanje setovanja baze

Dodavanje objekata (šema, tabela. stored procedura…) na projekat se svodi na izbor onoga što želite da dodate iz popup menija do koga se dolazi kad se desnim tasterom miša klikne na projekat u Solution Explorer-u (slika 6).

DbProjOnVS2012_6

Slika 6. Meni za dodavanje novih objekata na projekat

Ako se izabere opcija “New Item” dobija se spisak svih objekata koje je moguće dodati na projekat (slika 7).

DbProjOnVS2012_7

Slika 7. Izbor vrste objekta koji se želi da se doda u projekat

Kreiranje i editovanje tabela (slika 8) je, verujem, čak i funkcionalnije od kreiranja i editovanja tabela korišćenjem SQL Server Management Studia.

DbProjOnVS2012_8

Slika 8. Kreiranje i editovanje tabela

Kreiranje i editovanje stored procedura je identično načinu na koji se to radi u SQL Server Management Studiu (slika 9).

DbProjOnVS2012_9

Slika 9. Editovanje stored procedura

Deployment baze sa svim objektima se radi tako što se izabere opcija “Publish” pop up menija koji se dobija kad se desnim tasterom miša klikne na projekat u Solution Explorer-u (slika 10).

DbProjOnVS2012_10

Slika 10. Publish-ovanje projekta

Na taj način se dobija forma (slika 11) kroz koju se može, kroz definisanu konekciju na konkretan MS SQL Server, uraditi deployment baze. Takođe postoji i opcija kreiranja skripta za kreiranje baze i pripadajućih objekata a zatim njegovog izvršavanja na ciljnom MS SQL Serveru.

DbProjOnVS2012_11

Slika 11. Forma za Publish baze

Ipak, u našoj praksi se SQL Server Database Project najčešće koristi tek kad je baza već razvijena i nalazi se na nekom SQL Server-u a da bi se dobio skript svih objekata i dobila mogućnost postavljanja projekta na Team Foundation Server u cilju praćenja izmena na objektima konkretne baze.

Import objekata sa postojeće baze u novi Visual Studio SQL Server Database projekat se radi tako što se izabere opcija “Import” iz pop up menija koji se dobija tako što se desnim tasterom miša klikne na projekat u Solution Explorer-u (slika 12).

DbProjOnVS2012_12

Slika 12. Opcija menija za import objekata u projekat sa postojeće baze

Pojaviće se forma u kojoj se definiše konekcija prema konkretnom MS SQL Serveru i bazi i opcije importa (slika 13).

DbProjOnVS2012_13

Slika 13. Forma za import database objekata

Wizard će importovati objekte sa konkretne baze i smestiti ih u strukturu foldera kako smo u formi za import to setovali (slika 14).

DbProjOnVS2012_14

Slika 14. Projekat sa importovanim objektima

Za upoređivanje objekata baze sa objektima na projektu ili za upoređivanje objekata na istim bazama ali na dva različita servera koristi se Schema Compare. Schema Compare se kreira tako što se izabere stavka “Schema Compare…” iz pop up menija (slika 15) koji se dobija kad se levim tasterom miša klikne na projekat u okviru Solution Explorer-a.

DbProjOnVS2012_15

Slika 15. Stavka menija za kreiranje Schema Compare

Schema Compare omogućava komparaciju Source i Target objekata. U primeru koji je dat na slici 16 Source je projekat na Visual Studiu a za izbor Target-a se iz padajuće liste bira “Select Target”.

DbProjOnVS2012_16

Slika 16. Kreiranje Target-a

U formi koja će se pojaviti kao Target može da se definiše drugi projekat, baza ili Data-tier Application File (slika 17).

DbProjOnVS2012_17

Slika 17. Definisanje Target-a za Schema Compare

Korišćenjem tastere “Switch source and target” (slika 18) uvek može da se promeni šta je Source a šta Target tj. šta se sa čim upoređuje. Takođe treba imati u vidu da će se eventualne izmene primenjivati sa Source na Target objekte.

DbProjOnVS2012_18

Slika 18. Promena Source i Target-a u Schema Compare

Da bi se uradila komparacija objekata Source-a i Target-a potrebno je kliknuti mišem nataster “Compare” (slika 19).

DbProjOnVS2012_19

Slika 19. Taster Compare kojim se pokreće upoređivanje u Schema Compare

Ako postoji razlika u objektima Source-a i Target-a one će se pojaviti u Schema Compare-u kao što je dato na slici 20.

DbProjOnVS2012_20

Slika 20. Razlike između Source-a i Target-a

Da bi se uradio update postojećih objekata sa Source-a na Target-u ili insert nepostojećih potrebno je kliknuti na taster “Update Target” (slika 21).

DbProjOnVS2012_21

Slika 21. Update Target opcija Schema Compare-a

Novokreirana Schema Compare se može sačuvati na hard disku za kasniju ponovnu upotrebu.

Leave a Reply

%d bloggers like this: