it-swarm-eu.dev

Uložené procedury pod kontrolou zdroje, osvědčené postupy

V současné době používám Tortoise SVN k ovládání zdroje .NET webové aplikace. Jaký by byl nejlepší způsob, jak přenést naše uložené procedury serveru SQL do řízení zdrojů? V současné době používám VS 2010 jako své vývojové prostředí a připojuji se k off-premise SQL Server 2008 R2 databázi pomocí SQL Server Data Tools (SSDT).

Co jsem dělal v minulosti, je ukládání proců do souboru .sql a udržování těchto souborů pod kontrolou zdroje. Jsem si jist, že musí existovat efektivnější způsob, než tohle? Existuje rozšíření, které mohu nainstalovat na VS2010, SSDT nebo dokonce na SQL Server na produkčním stroji?

16
QFDev

Existují nástroje, jako je toto z Redgate , ale vždy jsem zjistil, že nejlepší je uložit jako soubory SQL, možná dokonce do databázového projektu (SSDT?) Ve vašem řešení.

Spolu s tím navrhuji následující pokyny:

  • Vždy předpokládejte verzi SVN jako „aktuální“/„nejnovější“
  • Ujistěte se, že každý spuštěný skript má odpovídající "if exists then drop" na startu
  • Nezapomeňte skript svá oprávnění, pokud existují

Tyto soubory SQL můžete zpočátku vytvořit přímo skriptováním ze SSMS a můžete nastavit SSMS, aby skriptoval všechna vaše "drop" a "create", stejně jako svá oprávnění.

14
RoKa

Uložení souborů SQL v řízení zdroje poskytuje kontrolu pouze nad soubory SQL. Neovládá změny skutečných databázových objektů ani nebrání současným změnám stejného databázového objektu několika uživateli (a myslím, že byste to chtěli mít také pod kontrolou). Používáme nástroj třetích stran ( verze ApexSQL ), integruje se jak s SSMS, tak VS, můžete si vybrat, zda budete pracovat s databázovou verzí objektu nebo s verzí Source Control. Pokud upravujete verzi databáze, je automaticky rezervována pouze pro vás, takže ji nikdo jiný nemůže upravovat (neslučuje změny od různých uživatelů). Ostatní ji mohou změnit pouze v případě, že je znovu nahlásíte. A můžete mít svou verzi SC) odlišnou od verze živého objektu (používám to, když odcházím na den a plánuji dokončit úpravy a vyzkoušet je na další)

4
Carol Baker West

Zkuste Ankhsvn , vysoce doporučeno a zdarma.

Z domovské stránky:

AnkhSVN je poskytovatelem řízení zdroje Subversion pro Microsoft Visual Studio 2005, 2008, 2010 a 2012 .

AnkhSVN poskytuje podporu správy zdrojového kódu Apache ™ Subversion® pro všechny typy projektů podporované Visual Studio a umožňuje provádět nejběžnější operace řízení verzí přímo z Microsoft Visual Studio IDE.

Ovládací panel Čekající změny vám poskytuje jedinečný přehled o vašem vývojovém procesu a poskytuje snadný přístup ke zdrojovým kódům a funkcím správy problémů. Integrace kontroly hlubokých zdrojových kódů (SCC) umožňuje soustředit se na vývoj, zatímco AnkhSVN sleduje všechny vaše změny a poskytuje vám nástroje pro efektivní řešení vašich specifických potřeb.

3
SqlACID

Vyzkoušel jsem jak databázový projekt RedGate, tak Visual Studio a dávám přednost ukládání definice databáze do databázového projektu. Jakmile se databáze stane součástí řešení, můžete použít preferovaného poskytovatele řízení zdroje. Většina z nich má vynikající integraci Visual Studio.

S nástroji SSDT máte „nejnovější verzi“ definice databáze, což vám umožňuje snadno porovnávat schémata a generovat skripty pro upgrade schémat.

To znamená, že schéma je obvykle jen část rovnice. Ve skutečném životě se ukazuje, že databáze již mají spoustu dat. A moji uživatelé mají sklon být zklamáni, když je ztratí.

Jakmile jsem spustil verzi v1.0, je potřeba udržovat aktualizační skripty. Někdy tyto obsahují pouze změny schématu, ale mnohokrát musím vytvořit výchozí nastavení na základě obsahu jiné tabulky, je třeba uvolnit určité omezení, dokud nenaseju data atd. Obvykle jednoduše upgradování schématu není zcela oříznuto. Upřednostňuji, aby tyto aktualizační skripty byly také v samostatné složce v projektu databáze. Ty by obvykle vypadaly jako 'upgrade z v1.0 na v1.1'.

Moje databáze mají vždy referenční tabulku, která mi sdělí aktuální číslo verze, abych mohl blokovat nekompatibilní aktualizace. První prohlášení v mých upgradovacích skriptech zkontroluje aktuální verzi a vyplatí se, pokud se liší od toho, co se očekává.

Další výhodou databázových projektů je možnost nasazení různých sad dat založených na stejném schématu. Mám různé datové sady pro vývoj, tým QA, test akceptace uživatelů a testy automatizované integrace. Protože projekt databáze může mít pouze 1 skript po nasazení, trik je v tom, aby se vytvořil nový projekt databáze, který bude odkazovat na „hlavní“ projekt a aby se vlastní datová sada stala součástí procesu následného nasazení tohoto projektu.

Byly to moje 2 centy, Ať už přijde jakýkoli proces, především, musí to vyhovovat vám a vašemu týmu a doufejme, že vás podpoří většinou společných úkolů.

3
souplex

Pomocí ovládacího prvku RedGate Source Control jej připojte k ovládání zdroje.

http://www.red-gate.com/products/sql-development/sql-source-control/

Připojí váš SSMS přímo do úložiště řízení zdroje a dokonce umožní kontrolu statických dat.

Funguje jako kouzlo

3
druzin

Nakonec jsem psal nástroj sám.

Je k dispozici ke stažení zdarma - http://www.gitsql.net

Doufám, že to pomůže ostatním lidem, kteří chtějí dosáhnout stejného cíle.

Zde je článek, který popisuje, jak ovládat zdroj SQL Server. http://gitsql.net/documentation-04_SQL_Server_and_GIT

Snažil jsem se, aby to bylo co nejjednodušší. (3 obrazovky)

  • Připojte se k serveru SQL
  • Vyberte objekty
  • Vyberte složku, ze které chcete exportovat/importovat

Také jsem - náhodou - přidal funkci, že jsem mohl selektivně vybírat jednotlivé objekty k importu nebo exportu. Což usnadňuje vývoj.

Obvykle provedu změnu uložené procedury a tabulky a poté tyto dva objekty exportuji do adresáře GIT.

Pak použiji zdrojový strom k vizuálnímu zobrazení změn a poté je vložím do bitbucket, pokud budu šťastný.

0
Anup Saund