Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cos do wersjonowania strukrury bazy danych
Forum PHP.pl > Inne > Komputery i oprogramowanie
jbadyl
Witam, szukam jakiegoś programu posiada jakies wsparcie dla "wersjonownaia" struktury bazy danych sam nie wiem coś w stylu SVN'a
zeby mozna było sobie prześledzic jak zmieniała sie struktura, wygenerowac skrypt aktualizujący np wersje 0.7 do wersji 1.0 danej bazy, fajnie by było jak by potrafił porownywać róznice miedzy danymi bazami danych.

czy ktoś spotkal się z takim programem ?
magnus
Można skorzystać z Doctrine (ORM) i mechanizmu migracji. Wymienione funkcje posiada, chociaż nie jest to idealne rozwiązanie z uwagi na samą specyfikę baz danych (nie wszystkie zmiany struktury są w prosty sposób odwracalne - np. dodawanie/usuwanie indeksów jeśli w międzyczasie dodamy do bazy jakieś dane).
occulkot
Wszystko zalezy od struktury bazy i stopnia jej zlozonosci.
Na pewnych etapach wystarczy prosty skrypt pozwalajacy naniesc i odwrocic zmiany natomiast przy bardziej zlozonych aplikacjach (procedury bazodanowe widoki itd) konieczne beda raczej wlasne skrypty.

Ja robie to w ten sposob ze mam katalog migracja a w nim pliki sql nazwane odpowiednio YYYY-MM-DD-licznik-co_robi.sql, skrypt wczytujacy (sortujacy po nazwie plikow) oraz tabele w bazie trzymajaca liste wczytanych plikow.
W przypadku jakiejkolwiek zmiany w procedurze czy funkcji wszystkie zmiany umieszczane sa w nowym pliku sql. Zmiany sa nieodwracalne (Aczkolwiek daloby sie pewnie zrobic dodatkowe pliki pozwalajace cofnac sie dok konkretnej migracji, z tym ze u mnie nie jest to potrzebne). Ale zaleta tego rozwiazania jest to ze mozemy w tych skryptach zawrzec wszelkie zmiany: uprawnien (o ile system nam na to pozwala), przetwarzanie danych (temporary table i updatey na podstawie jakichs danych), zmiany procedur itd

W ten sposob po zaktualizowaniu repozytorium odpala sie tylko skrypt migracji i mamy zaktualizowana baze do ostatniej wersji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.