Ahogy írtam a bemutatkozásnál, engem leginkább fejlesztői részről érdekel az SQL. Egyszer már írtam, hogy mindig olyan scriptet írjunk, amit többször is lefuttathatunk, nem vágja tönkre az adatbázist és nem száll el.
Ehhez a témához kapcsolódik még az is, hogy a tárolt eljárásokat és függvényeket valahogyan verziózzuk. Addig rendben van a dolog, hogy valami version control rendszerben tároljuk (Git, SVN, miegyéb), és ott látjuk minden módosítását.
De hogyan tudjuk szavatolni, hogy az adatbázis egy bizonyos állapotában, verziójában a megfelelő tárolt eljárás van? Nehezen.
Egyik megoldás lehet erre a verziózás. Az adatbázist valamilyen metaadaton keresztül verziószámmal látjuk el. Az alkalmazásunkat szintén. A tárolt eljárásainkat és függvényeinket is.
Az adatbázis verziót általában nem kell folyamatosan ellenőrizni. Elég, ha csak bizonyos esetekben nézünk rá, hogy az adott verziójú alkalmazás alatt a megfelelő verziójú adatbázis található. Ilyenek lehetnek az alkalmazás indulása, egy felhasználó belépése, főbb képernyők indítása.
Az alkalmazásnak pedig gondoskodnia kell arról, hogy a saját verziójának megfelelő verziójú tárolt eljárást futtassa.
Természetesen ezt nem érdemes nagyon elaprózni, elég csak major-minort vizsgálni, például 2.1 vagy 2.2, nem érdemes mélyebbre menni (2.1.123, 2.2.21.42), mert csak feleslegesen bonyolítja az életünket.
Ezzel azt is kicsit kordában tartjuk, hogy egy nagyobb alkalmazás-változásnál az adatbázist is feljebb kell húznunk a megfelelő verzióra és vice versa. Tehát kicsit jobban összekötjük az alkalmazásunk és az adatbázisunk fejlődésének követését.