2008-11-01 41 views
39

Czy znasz jakieś aplikacje do synchronizacji dwóch baz danych - podczas programowania czasami wymagane jest dodanie jednego lub dwóch wierszy tabeli lub nowej tabeli lub kolumny. Zwykle piszę każde wyrażenie sql w jakimś pliku i podczas wgrywania ścieżki I evecute te linie na mojej produkcyjnej bazie danych (wcześniej tworzenie kopii zapasowych). Pracuję z bazami danych mySQL i postreSQL.Jak synchronizować bazę danych tworzenia i produkcji

Jaka jest Twoja praktyka i jakie aplikacje w tym pomagają.

+0

Dodałem nagrodę. Potrzebuję tego do pracy z bazami danych MySQL. Pracuję z Typo3, jeśli to ma znaczenie. – demonkoryu

+0

I to powinno być tanie. :) – demonkoryu

Odpowiedz

5

Posiadam skrypty (oczywiście pod kontrolą źródła), które można tylko dodawać do dołu. To w połączeniu z regularnymi odtwarzaniami z bazy danych produkcji do deweloperów powinno być złote. Jeśli o to chodzi, działa to bardzo dobrze.

W przeciwnym razie wiem, wiele osób używa rzeczy redgate dla SQLServer.

0

Siebel (produkt zarządzający CRM, sprzedaż itp.) Ma wbudowane narzędzie do wyrównywania produkcyjnej bazy danych do wersji deweloperskiej (dev2prod).

W przeciwnym razie musisz trzymać się ręcznie wykonanych skryptów.

0

ma kreatora synchronizacji struktury, który obsługuje to.

6

Dla PostgreSQL można użyć Another PostgreSQL Diff Tool. Może bardzo szybko zlikwidować dwa zrzuty SQL (kilka sekund na bazie danych z około 300 tabelami, 50 widokami i 500 procedurami przechowywanymi). Możesz więc łatwo znaleźć swoje zmiany i uzyskać różnicę sql, którą możesz wykonać.

Z APGDiff Strona:

Innym PostgreSQL Diff Tool to proste narzędzie diff PostgreSQL, że jest przydatna do aktualizacji schematu. Narzędzie porównuje dwa pliki zrzutu schematu i tworzy plik wyjściowy, który jest (po pewnych ręcznych modyfikacjach) odpowiedni do uaktualnienia starego schematu.

5

Innym zagłosuj na Redgate SQL Porównaj

http://www.red-gate.com/products/SQL_Compare/index.htm

nie chciałby żyć bez niego!

Edycja: Przepraszamy, wygląda na to, że jest to tylko dla SQL Server. Nadal - jeśli użytkownicy SQL Server mają to samo pytanie, zdecydowanie polecam to narzędzie.

+1

To jest teraz narzędzie Red Gate, które niedawno zostało wydane: http://mysql-compare.com/ –

0

Rozwiązuję to, używając Hibernate. Może wykrywać i automatycznie tworzyć brakujące tabele, kolumny itd.

1

Bardzo podoba mi się EMS tools.

Dostępne są tam narzędzia do wszystkich popularnych baz danych i użytkownik ma takie samo doświadczenie dla każdego typu bazy danych.

Jednym z narzędzi jest DB porównywarka.

2

Jeśli piszesz instrukcje SQL dla swojej bazy danych programowania (które, jak sobie wyobrażam, z serii instrukcji DDL, takich jak CREATE, ALTER i DROP), dlaczego nie śledzisz ich, rejestrując je w tabeli, z indeksem "wersji"?Wtedy będziesz w stanie:

  1. śledzić wersja zmienia
  2. zrobić mały procedurę pozwalającą na „automatyczne” aktualizację bazy danych produkcyjnych poprzez wysyłanie nagranych instrukcji do bazy danych.
+0

Jest to zasadniczo wersja bazy danych, ale z własnej inicjatywy. Dobre podejście, ale prawdopodobnie lepiej wykorzystać istniejące narzędzie. – sleske

25

Poprosiłeś o odpowiedź na narzędzie lub aplikację, ale to, czego naprawdę potrzebujesz, to odpowiedź procesowa. Podstawowym motywem jest to, że powinieneś być wersją bazy danych DDL (i DML, gdy jest taka potrzeba) i dostarczania skryptów zmian, aby móc zaktualizować dowolną wersję bazy danych do wyższej wersji.

Ten zestaw linków dostarczonych przez Jeff Atwood i napisanych przez K. Scott Allen szczegółowo wyjaśnić, co to powinno wyglądać - i robią to lepiej niż mógłbym napisać tutaj: http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

+3

+1 dla wersjonowania bazy danych. Szkoda, że ​​nie mogłem przegłosować więcej ... – sleske

+1

To był problem. Typo3 uruchamia własne skrypty po aktualizacjach/modyfikacjach i chcę wyodrębnić zmiany, gdy to zrobi. Dlatego potrzebuję narzędzia do porównywania baz danych DB – demonkoryu

+1

Jeśli chciałbyś pójść drogą wersjonowania, polecam użyć http://www.liquibase.org/. Może zarządzać swoim schematem do przodu i do tyłu w czasie. –

1

TOAD

kilka razy uratowałeś wiele osłów. Dlaczego ludzie uruchamiają sql bez strategii wyjścia?

the redgate one is good również.

0

Możesz dodać trochę automatyzacji do bieżącego sposobu robienia rzeczy za pomocą dbDeploy lub podobnego skryptu. Umożliwi to śledzenie zmian w schemacie i aktualizację/przywrócenie schematu według własnego uznania.

0

DBV - „kontroli wersji bazy danych, jest proste!” (PHP)

+0

Wystarczy pamiętać, który DBV zajmuje się strukturą bazy danych; nie dane. –

Powiązane problemy