Niedawno zacząłem pracować z kontrolą wersji przy tworzeniu stron internetowych przy użyciu subversion. Działa to doskonale do zarządzania tworzonymi przeze mnie plikami, ale nie robi nic w przypadku zmian, które czasem muszę wprowadzić w bazach danych. Według mojej wiedzy na serwerze, na którym pracuję, nie ma żadnych systemów zarządzania DB i prawdopodobnie nie byłbym w stanie zmusić ich do zainstalowania czegokolwiek. Jakie są opcje zarządzania bazami danych w tego rodzaju środowisku?
database
version-control
Kenneth
źródło
źródło
Odpowiedzi:
K. Scott Allen napisał kilka świetnych postów na ten temat kilka lat temu. Mogą być „stare” pod względem internetowym, ale jego rozwiązanie jest nadal bardzo miłe.
źródło
Struktury migracji to biblioteki kodów, które zapewniają prosty interfejs API do automatyzacji zmian DB, z pewnym mechanizmem wersjonowania DB.
Używam Migrator.Net do niektórych projektów. Tworzę klasę dla każdego zestawu zmian, a struktura zapewnia prosty sposób na wykonanie zmian w bazie danych. Mogę również uruchamiać zmiany do przodu i do tyłu, pod warunkiem, że koduję logikę zarówno do obniżania, jak i uaktualniania.
Następnie zarządzamy kodem migracji w naszym VCS, jak każdym innym kodem.
źródło
Oczywiście (przynajmniej) nocne kopie zapasowe .. Ponieważ nie chodzi tylko o strukturę DB, na której Ci zależy.
Masz kilka opcji:
1) Trzymaj skrypty alter w kontroli źródła.
2) Po każdej zmianie bazy danych wygeneruj skrypty Db i jednocześnie przechowuj je pod kontrolą źródła wraz z kopią zapasową bazy danych. W ten sposób możesz dokonać porównania w wygenerowanym pliku skryptu.
źródło