2009-02-19 12 views

Odpowiedz

25

Tak. Cały kod powinien być przechowywany w kontroli źródła.

Mówiąc najprościej, kod to kod i błędy się zdarzają. Miło jest móc wrócić i zobaczyć, co się zmieniło w czasie i móc wrócić do tych zmian.

Musimy dodać go ręcznie do systemu kontroli źródła, ale można tworzyć dodatki do serwera Sql Server Management System. Nigdy nie stworzyłem tego, aby automatycznie dodać go do kontroli źródła, ale przypuszczam, że mógłbyś. Ponadto, cały kod jest przechowywany w tabelach sql, więc możesz teoretycznie utworzyć proces lub coś, co przejdzie przez tabelę (y) i pobrać cały kod i zatwierdzić go automatycznie.

Aktualizacja: Zawsze napiszę dodatkowy kod, aby sprawdzić i sprawdzić, czy kod istnieje i czy nie tworzy procedury wypełniania, a następnie faktyczny skrypt zrobić i zmienić procedurę.

IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE 
id = OBJECT_ID(N'[dbo].[SomeStoredProcedure]') AND 
OBJECTPROPERTY(id,N'IsProcedure') = 1) 

EXEC sp_executesql N'CREATE PROCEDURE [dbo].[SomeStoredProcedure] AS 

SELECT ''SPROC Template''' 

GO 

SET ANSI_NULLS ON 

GO 

SET QUOTED_IDENTIFIER ON 

GO 

ALTER PROCEDURE SomeStoredProcedure 

Wykonanie upuszczenia i ponowne utworzenie usunie wszystkie uprawnienia użytkownika, które dla niego skonfigurowałeś.

+1

Dodałem również definicje tabel, w tym indeksy, klucze, itp. Oraz wszelkie dane "wyszukiwania", które nie powinny powstać w ciągu całego okresu użytkowania aplikacji. –

0

Powinieneś.

Zgodnie z moją wiedzą, nie istnieje takie narzędzie do automatyzacji tego procesu. Przynajmniej, pięć lat temu, kiedy rozważałem budowę, nie wydawało mi się żadnej konkurencji.

+0

Dostępne są narzędzia, a studio graficzne ma wbudowane funkcje. Jest jednak prawie nieadekwatne. Chcielibyśmy kupić licencję na kod źródłowy do produktu innej firmy i ulepszyć dodatki, których potrzebowaliśmy, aby działał. – JohnFx

0

Przechowujemy naszych procs w Subversion, cały Twój kod SQL DDL tym powinien być w jakimś repozytorium kontroli źródła

0

SPS i schematy tabeli dla tej sprawy są wszystkie aktywa, które powinny być pod kontrolą wersji. W idealnym świecie DB będzie zbudowany ze skryptów, w tym danych testowych, jako część procesu CI. Nawet jeśli tak nie jest, posiadanie DB/programisty to dobry model do naśladowania. W ten sposób można wypróbować nowe pomysły w lokalnym piaskownicy bez wpływu na wszystkich, po przetestowaniu zmiany można je sprawdzić.

Studio zarządzania można powiązać z kontrolą źródła, chociaż nie mam doświadczenia to. Zawsze śledziliśmy nasz SP/schemat jako pliki. Studio zarządzania może automatycznie generować skrypty zmian, które są bardzo przydatne, ponieważ upuszczenie/odtworzenie tabeli może być zbyt ciężkie dla każdej tabeli zawierającej dane.

4

Zdecydowanie tak. Wtedy pojawia się pytanie, w jaki sposób przechowujesz je w kontroli źródła. Czy porzucisz i ponownie utworzysz procedurę przechowywaną lub po prostu zmienisz, czy dodasz uprawnienia na końcu skryptu lub w osobnym skrypcie? Jakiś czas temu pojawił się post o Coding Horror na temat, który uważam za interesujący. Is Your Database Under Version Control?

0

Procesy SQL również na pewno potrzebują tych samych zabezpieczeń/zalet kontroli wersji, co reszta kodu w projekcie.

4

Zalecam przechowywanie ich. Nigdy nie wiesz, kiedy będziesz musiał wycofać lub zagłębić się w logikę, którą możesz usunąć.

Oto dobry sposób na łatwe przechwycenie Przechowywanych Proc w pliki, które możesz wrzucić do dowolnej kontroli źródła, której pragniesz ..

Stored Procedures to .sql files

7

Get your database under version control. Sprawdź serię postów napisanych przez Scotta Allena.

Jeśli chodzi o kontrolę wersji, baza danych często jest obywatelem drugiej lub nawet trzeciej klasy. Z tego, co widziałem, zespoły, które nigdy nie myślały o pisaniu kodu bez kontroli wersji w ciągu milionów lat - i słusznie - mogą w jakiś sposób całkowicie zapomnieć o potrzebie kontroli wersji wokół krytycznych baz danych, na których opierają się ich aplikacje. Nie wiem, jak możesz nazwać się inżynierem oprogramowania i zachować prostą twarz, kiedy twoja baza danych nie podlega dokładnie takiemu rygorystycznemu poziomowi kontroli źródła jak reszta twojego kodu. Nie pozwól, aby ci się to przydarzyło. Pobierz bazę danych pod kontrolą wersji.

23

CAŁKOWICIE POZYTYWNIE BEZ PYTAŃ BEZ WYJĄTKÓW W KAŻDEJ PROBLEMIE PRZEZ WSZECHŚWIATNI TAK!

+3

sooo ... mówisz, że myślisz, że to dobry pomysł? :) – kemiller2002

+0

.. nie umieszczać zbyt drobnego punktu na nim. – ConcernedOfTunbridgeWells

+0

Ale czy czujesz się mocno w taki czy inny sposób? :) – NTDLS

0

Jak powiedzieli inni, tak powinni być.

Nie wiem, jak to zrobić w SQL Server Management Studio, ale jeśli korzystasz również z Visual Studio, projekty baz danych to świetny sposób na zarządzanie tym.

1

Absolutnie. Pozytywnie.

Zestaw SP jest interfejsem, który prawdopodobnie będzie modyfikowany częściej niż zmiany strukturalne. A ponieważ SPs zawierają logikę biznesową, zmiany powinny być przechowywane w kontroli wersji, aby śledzić modyfikacje i korekty logiki.

Przechowywanie tych w kontroli wersji jest symptomem dojrzałości organizacyjnej na poziomie kodowania i jest najlepszą praktyką.

4

Przechowywanie procedur przechowywanych to świetny pomysł. Ale to ból. W jaki sposób dostajesz te wszystkie rzeczy do działalności wywrotowej? Możesz to zrobić ręcznie, ale wtedy jest nudny i kończysz, nie robiąc tego w ogóle.

Używam narzędzia z subsonic project.

sonic.exe version /server servername /db databasename /out outputdirectory 

To polecenie zapisuje wszystko w 2 plikach tekstowych. Jedna zawiera schemat bazy danych, przechowywane procs, konta użytkowników, ograniczenia i klucze podstawowe. Drugi zawiera dane.

Teraz, gdy masz już te dwa pliki, możesz użyć subversion (cvs, source safe), aby przenieść go do kontroli źródła.

Więcej informacji na using The Command Line Tool (SubCommander)

2

SQL jest kod. Cały kod należy do kontroli kodu źródłowego.

To wszystko.

+0

Jeśli nie możesz tego po prostu wyjaśnić, nie rozumiesz tego wystarczająco dobrze. Einstein – SheldonH

0

Jeśli nie używasz zarządzania aktywami obok kontroli źródła, wtedy mówię rzucić wszystko w kontroli źródła. Obrazy, dokumenty tekstowe, cały shebang. Nie można go zgubić, zawsze można odwrócić wszelkie zmiany i jeśli jakaś maszyna ulegnie awarii - nic nie zostanie utracone.

1

Zdecydowanie.

Powiązane problemy