Twórz skrypty pod kontrolą wersji i ciągłą integracją, aby je weryfikować
Jednym ze sposobów, które działało dla mnie, było umożliwienie każdemu programistowi pracy z własnym schematem, z którym mogą robić to, co lubią. Ich schemat był możliwy do zniszczenia i wypełniony danymi testowymi pobranymi z zestawu skryptów kontrolowanych wersjami, do którego wszyscy twórcy się przyczynili.
Nocna kompilacja ciągłej integracji wzięła najnowszą wersję wszystkich skryptów i próbowała zbudować z nich spójną testową bazę danych. Następnie aplikacja przeprowadziła szereg testów integracyjnych i funkcjonalnych, aby sprawdzić, czy bieżący schemat jest zgodny z bieżącym kandydatem do wydania.
Przed rozpoczęciem tej drogi istniała dość solidna konstrukcja bazy danych, a DBA zawsze pilnował rzeczy, aby uniemożliwić programistom szaleństwo z powodu denormalizacji i innych okropności.
Kontrola wersji bardzo pomogła tutaj, ponieważ zmiany w skryptach były natychmiast widoczne. Wykorzystaliśmy również VERSION
tabelę bazy danych, aby określić ogólny stan bazy danych. To była prosta sekwencja liczb całkowitych i nie była powiązana z żadną konkretną aplikacją.
Ogólnie rzecz biorąc, działało dobrze i oznaczało, że programiści przestali się obawiać zmiany poziomów trwałości, ponieważ zawsze mogli wycofać swoje własne schematy bez wpływu na inne.