Verziózás

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.