두 개의 호스트 서버 s1 및 s2가 있다고 가정 해보십시오. 두 서버 모두에서 n1이라는 스키마가 있습니다. 이제는 s1의 스키마 n1에있는 테이블 중 일부에 몇 가지 변경 사항을 적용했습니다. 나는 서버 s2의 스키마 n1에 대해 동일한 변경을 원한다. 내가 뭘하려고 계획은 pg_dump를 사용하여 서버 s1의 스키마 n1을 백업하고 pg_restore를 사용하여 서버 s2에서 복원하는 것입니다. 이제 내 질문은, 같은 테이블 집합을 가진 서버 s2에 이미 동일한 스키마 n1이 있기 때문입니다. 복원 프로세스가 수행 할 작업은 무엇입니까? 기존 테이블을 덮어 쓰거나 서버 s2의 기존 스키마를 삭제하고 서버 s1의 덤프를 사용하여 복원해야합니까?pg_restore가 기존 테이블을 덮어 씁니까?
2
A
답변
6
의 --clean
옵션을 사용하면 새 테이블을 만들기 전에 이전 테이블이 삭제됩니다.
당신이 --clean
옵션을 사용하지 않는 경우, 테이블이 이미 존재하는 오류 메시지가 표시됩니다,하지만 당신은 --exit-on-error
옵션을 사용하지 않으면 pg_restore
처리를 계속합니다.
복원 전에 개체를 삭제하려면 pg_resotre의 --clean 옵션을 사용해보십시오. https://www.postgresql.org/docs/current/static/app-pgrestore.html – Jayadevan