Nie sądzę, że istnieje prosta odpowiedź na ten temat, ponieważ zależy to w dużym stopniu od środowiska. Niezależnie od tego, co wymyślisz, bardzo polecam podejście oparte na skryptach, ponieważ skrypty wdrażania są same w sobie kontrolowane. Skrypty te pozwolą również na lepszą integrację z rozwiązaniami kompilującymi (patrz poniżej).
Najprostszym takim skryptem do uruchomienia w środowisku produkcyjnym byłoby po prostu polecenie uzyskania najnowszej wersji (lub uzyskania określonej wersji) z kontroli źródła.
Kolejnym wyzwaniem jest wdrożenie bazy danych. Rozwiązaniem, które najbardziej lubię dla małych i średnich projektów, jest utrzymywanie tabeli wersji schematu w każdej bazie danych oraz posiadanie wszystkich skryptów DDL i skryptów aktualizacji danych w kontroli źródła (w tym źródeł danych, których używają w skompresowanych archiwach). Skrypty są ponumerowane kolejno (począwszy od 000001 ..., 000002 ..., itd.), A uruchamiany przeze mnie skrypt instalacyjny po prostu tworzy kopię zapasową istniejącej bazy danych, a następnie pobiera ostatni skrypt bazy danych z tabeli wersji, a następnie uruchamia wszelkie nowe skrypty bazy danych znalezione w kontroli kodu źródłowego w poprawnej kolejności, aktualizując odpowiednio tabelę wersji schematu.
To podejście pozwala mi dość szybko odbudować bazę danych od podstaw.
Oba podejścia razem wzięte pozwalają szybko wdrożyć swoją bazę kodu do kilku różnych maszynach pomostowym środowiska QA, beta, itd
uzyskać tylko trochę bardziej złożonych scenariuszy, należy uruchom serwer budowania ciągłej integracji, taki jak Kieveli i in. glin. zasugerowano, co zasadniczo "odbudowuje" całe twoje wdrożenie, a zatem zawiera skrypty do wykonania dokładnie tego, co zrobiłbyś "ręcznie" powyżej.
Wdrażanie bazy danych można również ulepszyć, tworząc skrypt wycofania dla każdego skryptu bazy danych. Powinieneś wtedy napisać małą aplikację kontrolera, aby sobie z nimi poradzić. Istnieje kilka rozwiązań OSS dla tego rodzaju rzeczy i jeden z nich może pasować do twoich potrzeb.
ALE, upewnij się, że nigdy automatycznego rozmieszczania bazy danych w środowisku produkcyjnym ;-)
Hudson jest niesamowite. – stimms