Eksponowanie obiektów bazy danych SQL Server jako plików w systemie plików

Istnieje więcej niż jeden system plików

Większość narzędzi kontroli wersji działa na lokalnym systemie plików dysku.

Obiekty bazy danych dla większości systemów relacyjnych baz danychrobić istnieje w systemie plików, ponieważ istnieje nazwa tekstowa identyfikująca obiekt, a skrypt tworzenia można pobrać lub przynajmniej wygenerować przy użyciu tej nazwy.

Ale to nie jest lokalny system plików dysku, w związku z czym są one niewidoczne dla narzędzi takich jak CVS lub SVN, które działają wyłącznie na lokalnym systemie plików dysku.

Aby SVN mógł zostać zastosowany do obiektów bazy danych, muszą one zostać zreplikowane do lokalnego systemu plików dysku, a zmiany w systemie plików dysku lokalnego muszą zostać zreplikowane do bazy danych.

Inny tryb użytkowania

W przeciwieństwie do kodu źródłowego, z którego każdy deweloper utrzymuje prywatną kopię roboczą, programiści pracują nad wspólną bazą danych na serwerze gdzieś w sieci. Podczas gdy Visual Studio zapewnia bezpośrednie wsparcie dla lokalnych kopii bazy danych projektu na żądanie, programiści unikali tego obiektu, ponieważ nie ma wygodnego i niezawodnego sposobu scalania zmian.

Jednakże, gdy zmiany w strukturze bazy danych są zarządzane przez system kontroli wersji kopiujących, taki jak CVS lub SVN, propagacja i scalanie będą w większości automatyczne (konflikty słupkowe) i nie ma już powodu, aby udostępniać bazę danych.

Wykluczenie SCC jako opcji

Microsoft SQL Management Studio obsługuje kontrolę wersji dla wszystkiego, co implementuje specyfikację SCC. Microsoft wymienia tylko VSS (blech), ale Google ujawnia mnóstwo opcji.jednak, SCC polega na blokowaniu - podwójnym blechu.

Replikacja między systemami plików

Całe pytanie jest teraz związane z replikacją między systemami plików. CodePlex zawiera implementację VS2005 / SQL2005, ale nie działa z VS2008 / SQL2008.

W tym momencie uważam, że podstawowa kwestia „jak się do tego zabrać” została zadowalająco rozwiązana, chociaż nie jestem pewien, jak przyznać punkty.

Dziękujemy wszystkim zainteresowanym za wkład.

Pojawiają się pewne konkretne pytania, głównie związane z pisaniem różnych typów obiektów schematu.

Jak wyodrębnićcreate ialter skrypty w kolejności zależności dlastółwidokprocedura składowanafunkcjonowaćspustindeksklucz obcyJak wyodrębnić skrypty populacji tabel w kolejności zależnościJak skutecznie wykrywać zmiany w schemacie (przy braku wyzwalaczy)sys.objects konieczne będzie sondowanie; lepiej byłoby szybko i tanio)Wykrywanie zmian

Zauważyłem, że możliwe jest powiązanie działań ze zmianami w schemacie za pomocą zasad. Pozostają pytania dotyczące porządkowania zależności i sposobu pisania instrukcji tworzenia tabeli

questionAnswers(6)

yourAnswerToTheQuestion