Topic: database schema version control

Sveiki,

Programiniam kodui naudoju GIT, viskas gražu ir puiku - matau kas ką darė ir galiu pasirinkti bet kurią failo versiją. O nėra kažko panašaus duomenų bazės struktūrai (ieškant pokyčių kas tam tikrą periodą ar pan)? Gal kas ką naudoja ar šiaip matė...

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: database schema version control

Tau reikia ar schemų versijų kontrolės ar tiesiog veikiančios DB pakeitimų monitoringo?

Monitoringą yra lengviau pasidaryt ir turėt, o schemų versionavimas yra dar tik diskutuojama tema ir labai daug resursų dar nėr :)

Re: database schema version control

Iš esmės nėra svarbu kas tai turi būti. Tikslas matyti/žinoti kas buvo padaryta tarkime per paskutinę savaitę, kad įkeliant pakeitimus į production serverį neliktų pamirštas koks nors vienas stulpelio pakeimas iš NULL į NOT NULL. Anksčiau permesdavau akim stulpeliu kiekį ir tiek žinių, o dabar, kai jau sistemos darosi sudetingesnės, tai pilna visokių išorinių raktų, indeksų ar trigerių... Darosi sunku viską sužiūrėti, o lygiagrečiai daryti pakeitimus atsidarius du phpmyadmin langus - vargina.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: database schema version control

Tai galima automatizuoti, schemas galima traukti iš INFORMATION_SCHEMA lentos arba iš SHOW CREATE TABLE ir pan. ir tada daryti palyginimą.

Yra gaminama visokių tools'ų tam reikalui, gali pasiskaitytinėti:
http://stackoverflow.com/questions/2257 … -databases

http://www.adamspiers.org/computing/mysqldiff/
http://sourceforge.net/projects/maatkit/

Re: database schema version control

Galima ir su MySQL funkcijom, kaip Minde rašė, bet SHOW CREATE TABLE padės prieš tai drop'inant visą lentą, kas speju nėra labai pageidautina.

Gali bandyti pvz su Docrine http://www.doctrine-project.org/project … duction/en

RoR, CakePHP, Symfony Framework (jis ir naudoja Doctrine) irgi turi neblogą migracijų valdymą per cli. Galima badnyti šalia sukurti tuščią projektą su vienu iš karkasų, tiesiog DB versijavimui, ir valio.