[postgresql] PostgreSQL에서 두 데이터베이스 간의 데이터를 비교하는 방법은 무엇입니까?

동일한 구조의 두 데이터베이스를 비교할 수 있습니까? 두 개의 데이터베이스 DB1과 DB2가 있고 두 데이터베이스 사이에 데이터 차이가 있는지 확인하고 싶다고 가정 해 보겠습니다.



답변

몇 가지 도구가 있습니다.

(대부분의 이러한 도구는 구조 만 비교할 수 있지만 데이터는 비교할 수 없습니다.)

무료 :

상업용 :


답변

pg_dump두 데이터베이스에서 사용 하고 파일을 비교해 보십시오 .


답변

다른 무료 앱 ( 구조 만 비교할 수 있지만 데이터는 비교할 수 없음 ) :

DBeaver- 데이터베이스, 테이블 등을 선택하여 서로 비교할 수 있습니다.


답변

많은 도구를 평가하고 다음과 같은 해결책을 찾았습니다.

스키마 비교 :

가장 흥미로운 것은 Liquibase, Persyas 및 PgCodeKeeper입니다.

( 문제 ) Liquebase는 다음을 변환합니다.

 SET DEFAULT nextval('myschema.name_id_seq'::regclass)

으로

BIGSERIAL

그래서 사용이 거부되었습니다

( 문제 ) Persyas는 추가 스키마를 추가하고 다음을 던지기 시작할 때까지 잘 작동했습니다.

pyrseas_1       | TypeError: 'NoneType' object is not iterable

그래서 나는 PgCodeKeeper 가 완벽하게 작동하고 살아 있음을 발견 했습니다 (릴리스를 확인할 수 있습니다). 다음 명령을 사용합니다.

./pgcodekeeper-cli.sh -E -I ./ignore.txt \
-s "jdbc:postgresql://localhost/postgres?user=postgres&password=123" \
-t "jdbc:postgresql://localhost/postgres?user=postgres&password=123" \
-o /result/schema-diff-$(date +'%m%d%y_%H%M%S').sql

데이터 비교 :
Liquebase를 사용하려고했지만 작동하지 않습니다. 답이없는 질문에서 시도한 단계를 볼 수 있습니다. 하는 두 데이터베이스의 데이터 차이에 대한

그래서 다른 프로젝트 SQL Workbench / J를 찾았습니다.
정말 잘 작동하고 SQL에서 reall diff를 생성합니다. 다음 명령을 사용합니다.

  java -jar /sqlworkbench.jar -command="'WbDataDiff -excludeTables=$EXCLUDE_TABLES \
-referenceConnection=$REFERENCE_CONNECTION \
-targetConnection=$TARGET_CONNECTION -referenceSchema=$1 \
-targetSchema=$1  -file=$DIFF_RESULT_FILE -singleFile=true \
-includeDelete=true -ignoreMissingTarget=true ;'"

두 도구 모두 개체 필터링을 지원합니다. 정말 편리합니다.

마이그레이션

마지막으로 마이그레이션 / 버전 추적을 위해 Liquebase를 사용합니다.


답변

Postgres에 대한 포괄적 인 비교 도구를 개발 중입니다. 베타 버전에서는 무료입니다.

Postgres 비교

처음에는 이것은 스키마 (DDL) 비교 일 뿐이지 만 데이터도 확장 할 것입니다. 나는 이것이 개발 환경, 운영 등의 작동 방식을 변경하지 않고도 현재 RDBMS에서 이동하기 위해 많은 상점에서 필요한 도구라고 생각합니다.


답변

내가 본 최고의 도구
https://pythonhosted.org/Pyrseas/

  1. 데이터베이스 A dbtoyaml에서 덤프 가져 오기 …

  2. A => B yamltodb에서 마이그레이션 생성 … [1 단계에서 생성 된 파일]


답변

또한 데이터베이스의 데이터를 비교하는 도구를 찾고 있습니다 (특히 Redshift DB를 비교하는 데 관심이있었습니다). 지금까지 내가 찾은 최고는 https://www.dbbest.com/products/database-compare-suite/#close 입니다. 불행히도 무료 평가판은 하루 후에 만료됩니다.