Rozważ następujące ustawienie:
- DB produkcyjny
- Dev db, na którym dokonywane są zmiany schematu w celu włączenia nowych funkcji
Po zakończeniu opracowywania nowej funkcji muszę ręcznie zaktualizować schemat prod db, aż pg_dump --schema-only
obie bazy danych będą identyczne. Ten proces jest podatny na błędy i żmudny.
Poszukuję narzędzia, które może:
- Pokaż podsumowanie różnic między dwoma schematami (jak
diff
). Zauważ, że nie szukam jedynie różnic tekstowych schematu, ale bardziej rozbudowane narzędzie, które może wyciągać wnioski, takie jak „TabelaX
ma nową kolumnęY
”. - Automatyczne generowanie kodu SQL, który konwertuje jeden schemat na inny (jak
patch
)
Czy istnieje narzędzie do różnicowania / łatania schematów , które może pomóc mi przekonwertować schematy prod na bardziej zaawansowane schematy programistyczne?
postgresql
schema
Adam Matan
źródło
źródło
Odpowiedzi:
Przepraszamy za wskrzeszenie starego pytania
Ostatnio korzystam z narzędzia do zarządzania bazą danych
0xDBEDataGrip firmy JetBrains.Obsługuje wiele silników baz danych, w doskonałym IDE Jetbrains, a kluczową cechą, którą uważam za przydatną, jest możliwość
diff
2 tabel (DEV i PROD).Poniżej znajduje się zrzut ekranu różnicy w akcji (w tym przypadku występuje tylko jedna różnica kolumn). Zrzut ekranu jest rezultatem przycisku „Scal w prawo” u góry, generując kod SQL wymagany do doprowadzenia właściwej tabeli do zera.
Mam nadzieję, że to nowe narzędzie pomoże.
źródło
Database
menu po lewej stronie wybierz 2 tabele, które chcesz porównać (zcmd/ctrl + click
), kliknij prawym przyciskiem myszy i wybierzCompare
Użyj likibazy .
Obsługuje diff , generowanie db od zera, łatanie db, wycofywanie db i kilka innych rzeczy.
Kiedyś musiałeś pisać wszystko w XML przy pomocy liquibase, ale już nie. Możesz napisać 99% tego w wybranym przez siebie dialekcie SQL. Przykład:
Powinieneś trzymać swoje dzienniki zmian likibazy w git lub czymkolwiek, co masz.
źródło