Czy można porównać dwie bazy danych o identycznej strukturze? Powiedzmy, że mam dwie bazy danych DB1 i DB2 i chcę sprawdzić, czy są między nimi różnice w danych.
postgresql
schema-compare
sennin
źródło
źródło
Odpowiedzi:
Istnieje kilka narzędzi:
(zauważ, że większość z tych narzędzi może tylko porównywać strukturę, ale nie dane)
Darmowe:
Reklama w telewizji:
źródło
apgdiff
nie obsługuje dobrze dziedziczenia tabel, a wyjątek rzuca się natychmiast, gdy próbuję go użyć.WbSchemaDiff
działa bardzo dobrze, niespodzianka!Spróbuj użyć
pg_dump
na obu bazach danych i porównaj pliki.źródło
pg_dump
jest do tego w porządku. Jeśli widzisz znaczące różnicepg_dump
, prawdopodobnie próbujesz porównać rzeczy, których nie da się porównać. Przynajmniej do porównania PG dbs.psql -c '\x' -c 'SELECT... ORDER BY...'
zamiastpg_dump
.Kolejna bezpłatna aplikacja (która może tylko porównywać strukturę, ale nie dane ):
DBeaver - możesz wybrać bazy danych, tabele, itp. Do porównania
źródło
Oceniłem wiele narzędzi i znalazłem następujące rozwiązanie:
Porównanie schematów :
Najciekawsze były Liquibase, Persyas i PgCodeKeeper:
( problem ) Liquebase konwertuje:
SET DEFAULT nextval('myschema.name_id_seq'::regclass)
w
Więc został odrzucony do użycia
( problem ) Persyas działał dobrze, dopóki nie dodałem dodatkowego schematu i zaczął rzucać następujące:
Znalazłem więc PgCodeKeeper, który działa idealnie i żyje (możesz sprawdzić wydania). Używam polecenia:
Porównanie danych: Próbowałem użyć Liquebase i po prostu nie działa, możesz zobaczyć kroki, które wypróbowałem w moim pytaniu bez odpowiedzi o różnicy danych dwóch baz danych z Liquebase
Więc znalazłem inny projekt SQL Workbench / J Działa naprawdę dobrze i generuje różnicę w sql. Używam polecenia:
Oba narzędzia obsługują filtrację obiektów. To naprawdę wygodne.
Migracje
I wreszcie używam Liquebase tylko do śledzenia migracji / wersji.
źródło
Pracuję nad wszechstronnym narzędziem porównawczym dla Postgres. Będzie za darmo w wersji beta.
PostgresCompare
Początkowo jest to tylko porównanie schematu (DDL), ale prawdopodobnie rozszerzymy również o dane. Uważam, że jest to narzędzie, którego wiele sklepów wymaga, aby odejść od obecnego systemu RDBMS bez konieczności zmiany sposobu działania ich środowisk programistycznych, operacji itp.
źródło
Najlepsze narzędzie, jakie kiedykolwiek widziałem https://pythonhosted.org/Pyrseas/
Pobierz zrzut z bazy danych A dbtoyaml ...
Wygeneruj migrację z A => B yamltodb ... [plik wygenerowany w kroku 1]
źródło
Poszukuję też narzędzia do porównywania danych w bazach danych (w szczególności interesowało mnie porównanie Redshift DB). Jak dotąd najlepsze, jakie znalazłem, to https://www.dbbest.com/products/database-compare-suite/#close . Niestety bezpłatny okres próbny wygasa po jednym dniu.
źródło
Stworzyłem narzędzie do porównywania 2 baz danych PostgreSQL na żywo (nie zrzutów), danych tabel i sekwencji. Dość wcześnie, ale osiągnąłem to, co chciałem, może to też pomoże.
https://github.com/dmarkey/pgdatadiff
źródło
Moim zdaniem Dbforge to najpotężniejsze narzędzie do porównywania danych w postgresql. Jest to produkt firmy Devart, który można pobrać tutaj .
źródło