Próbowałem zarówno projektu bazy danych RedGate, jak i Visual Studio i wolę przechowywać definicję bazy danych w projekcie bazy danych. Gdy tylko baza danych stanie się częścią rozwiązania, możesz skorzystać z preferowanego dostawcy kontroli źródła. Większość z nich ma doskonałą integrację z Visual Studio.
Dzięki narzędziom SSDT masz „ostatnią wersję” definicji bazy danych, co pozwala na łatwe porównywanie schematów i generowanie skryptów aktualizujących schematy.
To powiedziawszy, schemat jest zwykle tylko częścią równouprawnienia. W rzeczywistości okazuje się, że bazy danych zawierają już dużo danych. A moi użytkownicy raczej się rozczarowują, gdy go tracą.
Gdy tylko wypuściłem wersję 1.0, pojawia się potrzeba utrzymania skryptów aktualizacji. Czasami zawierają one tylko zmiany schematu, ale wiele razy muszę tworzyć wartości domyślne na podstawie zawartości innej tabeli, muszę zwolnić określone ograniczenie, dopóki nie zainicjuję danych itp. Zwykle zwykłe uaktualnienie schematu nie do końca go wycina. Wolę te skrypty aktualizacji również w osobnym folderze w projekcie bazy danych. Zwykle wyglądają one jak „aktualizacja z wersji 1.0 do wersji 1.1”.
Moje bazy danych zawsze mają tabelę referencyjną, która informuje mnie o bieżącym numerze wersji, dzięki czemu mogę blokować niekompatybilne aktualizacje. Pierwsza instrukcja w moich skryptach aktualizacyjnych sprawdza bieżącą wersję i ratuje, czy różni się ona od oczekiwanych.
Kolejną korzyścią wynikającą z projektów baz danych jest możliwość wdrażania różnych zestawów danych w oparciu o ten sam schemat. Mam różne zestawy danych do programowania, zespołu kontroli jakości, testu akceptacji użytkownika i testów automatycznych integracji. Ponieważ projekt bazy danych może mieć tylko 1 skrypt po wdrożeniu, sztuczka polega na tym, aby utworzyć nowy projekt bazy danych, który odwołuje się do projektu „głównego” i uczynić niestandardowy zestaw danych częścią procesu po wdrożeniu tego projektu.
To były moje 2 centy. Niezależnie od tego, jaki proces wymyślisz, przede wszystkim musi on pasować do ciebie i twojego zespołu i, mam nadzieję, wspierać cię w większości typowych zadań.