Az SQL Server adatbázis automatikus telepítése és verziója az SSDT használatával

Keith Schreiner készítette

Sokszor olvastam és mondtam, hogy „legjobb gyakorlat” az adatbázis verzióvezérlése. Ehhez kipróbáltam a Microsoft, a RedGate és mások korábbi eszközeit, de egyik sem igazán ragadt meg értem. Nem szeretem a „rendetlen” folyamatot is, amikor több SQL szkriptet kezelni kellett a termelési adatbázis frissítésekor. A Microsoft legújabb (ingyenes) eszköze, az SQL Server Data Tools (SSDT) ​​azonban helyreállította azt a hitem, hogy az adatbázisom verziózásának nem kell rettegett feladatnak lennie.

Határozza

Az SSDT sok funkcionalitást ad a Visual Studio számára az SQL Server adatbázisokkal való együttműködéshez. A legfontosabb dolog, amit hozzátesz: „SQL Server Database Project”, és valami DACPAC (Data-Tier Application Package) néven. A DACPAC egy egységes telepítési fájl, amely tartalmazza a teljes adatbázis sémát és néhány kapcsolódó SQL fájlt (például a keresési adatokat), alapvetően mindent, ami az adatbázis új verziójának egy fájlba történő telepítéséhez tartozik. Hasonló a BACPAK-hoz, amely egy DACPAC, plusz az összes táblázatban szereplő adat (mint egy standard adatbázis biztonsági másolat). Mielőtt még többet beszélnénk a DACPAC-ról, tárgyaljuk meg, mit ad az SSDT az SQL Server Database projektjével.

fejleszt

A Visual Studio alkalmazásban új SQL Server Database Project létrehozása után lehetősége van egy adatbázis importálására is, amely szépen létrehozza az SQL parancsfájlokat az összes adatbázis-objektumról (táblák, nézetek, tárolt eljárások és így tovább). A következő lépés, hogy hozzam létre egy „Data” mappát, és adj hozzá egy telepítés utáni SQL parancsfájlt a keresési adatok kitöltéséhez és opcionálisan teszt adatok létrehozásához.

Egy adatbázis-projektben csak egy telepítés utáni és egy előzetes telepítésű fájl lehet, tehát legjobb gyakorlat az SQLCMD szintaxis más fájloknak a fő fájlba történő felvételekor a szervezet és a karbantartás elősegítése érdekében. Amikor ezeket az SQL szkripteket készíti, vagy az SQL-t szerkeszti a táblákhoz vagy a tárolt eljárásokhoz, észreveszi az SSDT által a Visual Studio által hozzáadott összes többi dolgot: SQL IntelliSense, SQL kód navigáció, SQL Server Object Explorer, SP-k, SP tesztelések, vizuális táblatervező, Séma-összehasonlító eszköz, Adat-összehasonlító eszköz és még sok más. Mindezek a funkciók az adatbázis-fejlesztés és -karbantartás természetesnek érzik magukat a Visual Studio alkalmazásban.

telepítése

Az adatbázis-módosítások elvégzése után a következő lépés a telepítés, és az SSDT számos lehetőséget kínál. Az első módszer a „Közzététel”, amely nagyszerűen működik, ha közvetlen kapcsolat van az adatbázishoz a Visual Studio gépről (például a helyi vagy a „fejlesztői” adatbázishoz). Kattintson a jobb gombbal az adatbázis-projektre, és válassza a „Közzététel…” lehetőséget, amely megnyit egy párbeszédablakot a profil mentéséhez. Miután egy profilt a projekt részeként mentettünk, akkor csak duplán kattinthat rá, hogy közvetlenül közzétegye az adatbázis-projektet az adatbázisban, vagy csak létrehozza a futtatni kívánt változtatások szkriptét.

A második módszer egy DACPAC használata, amiről már fentebb beszéltünk, amikor a fejlesztők nem férnek hozzá a cél adatbázishoz (például a termeléshez). DACPAC létrehozásához kattintson a jobb gombbal az adatbázis-projektre, és válassza a „Pillanatkép-projekt” lehetőséget, amely létrehoz egy DACPAC-t a projekt „Pillanatképek” mappájába. Ezután a DACPAC telepítéséhez többféle lehetősége van. Ha van egy DBA, amely mindig frissíti az adatbázis frissítéseit, megadhatja neki a DACPAC-t, hogy jelentkezzen az SSMS (SQL Server Management Studio) használatával, amely rendelkezik a beépített „Adatbázis-frissítési alkalmazás” feladattal; varázslóval segíti a változások alkalmazását (és lehetővé teszi az összes változtatás felülvizsgálatát minden olyan probléma esetén, mint például az esetleges adatvesztés).

Egy másik DACPAC telepítési lehetőség az „SqlPackage.exe” felhívása (parancssori paraméterekkel) vagy C # kód írása (a Microsoft.SqlServer.Dac névtérből), amely maga a DACPAC telepíti. Ezáltal a telepítés automatikus, szinte olyan pontig, ahol nem kell aggódnia.

Valós élet minta

Az első projektnél az SSDT-t (egy új MVC webhelyet) használtam, három kérdéssel találkoztam az SSDT-vel. Így oldottam meg őket, és jelentősen egyszerűsítettem az adatbázis-fejlesztést. Először csak akkor akartam automatikusan telepíteni a DACPAC-ot a webhely Application_Start programjában, amikor az adatbázis valóban megváltozott. Tehát hozzáadtam egy darab logikát, hogy ellenőrizze, van-e új verziószám a legújabb DACPAC-ban, mielőtt alkalmazná. A DACPAC verziószámát az Adatbázis projekt tulajdonságai -> Projektbeállítások -> Tulajdonságok párbeszédpanelen állíthatja be, és az aktuális adatbázis-verziót az msdb.dbo.sysdac_instances_internal rendszertáblában tárolja . Ez a verziószám nemcsak gyorsabbá tette az indítást, másrészt tudatosította mások számára az „adatbázis-verziót”.

A második kérdés az volt, hogyan állíthatjuk be az adatbázis-projektet, hogy az tartalmazza a „tesztadatokat” a Dev adatbázishoz, de kizárja azt a termeléshez. Ezt egy második adatbázis-projekt (DatabaseAndTestData) létrehozásával valósították meg, amelynek „adatbázis-referenciája” volt az első projekthez. Ebben a második projektben a telepítés utáni szkript tartalmazza az első projekt telepítés utáni szkriptét, majd az összes teszt adatot. Az első projektet (teszt adatok nélkül) hoztam létre a DACPAC for Production számára, majd éppen közzétettem a második projektet (teszt adatokkal) közvetlenül a Dev-nél.

Végül néhány fejlesztő azt panaszolta, hogy a séma vagy a keresési adatok frissítése után még sok unalmas és ismétlődő feladatot kell elvégezniük, hogy a DACPAC készen álljon a telepítésre. Ennek megoldására írtam egy egyszerű alkalmazást (UpdateDatabaseVersion.exe), amelyet fel lehet hívni az adatbázis projekt „Megoldáskezelőjéből” a Visual Studio kiterjesztésével, a „VSCommands” használatával. Növeli az adatbázis verziószámát, létrehozza a DACPAC-t, majd a megfelelő mappába helyezi a telepítéshez. Ezen SSDT folyamatok végrehajtásával korszerűsítette a csapatom adatbázisokkal kapcsolatos feladatait, lehetővé téve, hogy több időt töltsünk más feladatokra.

Következtetés

A múltban az adatbázis megváltoztatása hosszú, bonyolult folyamatnak bizonyult, amikor a sémát megváltoztatta (remélhetőleg a helyes adatbázis verziót), manuálisan készít változási szkriptet, emlékezteti a telepítőt az adatbázis változására, és átlépte az ujjaimat hogy minden rendben ment. Az SSDT-vel ez a bizonytalanság eltűnt. Az SSDT egy nagyszerű eszköz, amely megkönnyíti az SQL Server adatbázis frissítéseinek létrehozását, telepítését és verzióját. További információkért töltse le a példakódot, amely bemutatja, hogyan kell automatikusan telepíteni és verziózni egy SQL Server adatbázist.

Megjegyzés:

  • SSDT webhely: http://msdn.microsoft.com/en-us/data/tools
  • Az SSDT telepítve: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DAC \ bin \
  • Használt SSDT-verzió: 2013. július, Visual Studio 2012
  • VSCommands kiterjesztés: http://vscommands.squaredinfinity.com/

Keith Schreiner egy szoftver-építész a Chicagói székhelyű Geneca, egy egyedi szoftverfejlesztő cégnél. Több mint 15 éves tapasztalattal rendelkezik a szoftverfejlesztési iparban.

© Copyright 2021 | mobilegn.com