2012-05-02 2 views
3

두 데이터베이스 버전이 있습니다. 하나는 현재 상태이고 다른 하나는 백업에서 복원되었습니다. 이제는 기본적으로 백업에서 현재 데이터베이스로 데이터를 이동하여 여러 테이블 간의 관계를 유지하기 위해 이들을 병합해야합니다.두 데이터베이스 복사본을 병합하는 방법 (postgresql)

이 작업을 수행하는 데 도움이되는 도구가 있습니까?

+0

나는 또한 대답을 찾고 있습니다. –

답변

2

에는 원하는 것을 수행 할 수있는 동기화 feature이 있습니다.

Rubyrep은 postgresql 및 mysql에 대한 트리거 기반 비동기 복제 시스템입니다. 하지만 기능 중 하나는 "동기화"명령입니다.이 명령은 테이블을 스캔하여 차이점을 찾아 병합합니다. 일반적으로 동기화를 먼저 사용하고 replicate를 사용하여 두 데이터베이스를 동기화 한 후 동기화하지만 "sync"명령 만 사용할 수는 없습니다.

데이터를 비교할 때 기본 키를 사용한다고 생각합니다. 따라서 스키마에 따라 다르거 나 그렇지 않을 수도 있습니다. 데이터를 먼저 백업하려고합니다.

동일한 기본 키가있는 레코드를 병합 할 것 같습니다. 어느 쪽이 승리하는지 말할 수 있습니다. 그러나 병합해서는 안되는 동일한 기본 키를 가진 두 개의 레코드가 있다면 문제가 발생할 것이라고 생각합니다.

그래도 도움이 될 수도 있습니다. 말할 수 있습니다 (예 : "username"은 "id"대신 기본 키입니다. 또는 데이터가 겹치지 않는 경우 수동으로 직렬 기본 키를 수동으로 조정하십시오.

관련 문제