2016-12-07 3 views
0

전체 postgres 데이터베이스를 백업하고 올바르게 복원하려고하지만 백업을 복원하려고 시도 할 때 오류 목록이 표시됩니다.왜 Postgres 데이터베이스를 복원 할 때 오류가 발생합니까?

백업 sql 파일을 만들 때 pg_dump를 사용하고 있습니다. 내가 함께 데이터베이스를 복원 할 때

sudo -u postgres pg_dump -d db-w > backup.sql 

(I 암호에 대한 .pgpass 파일이) :

ERROR: duplicate key value violates unique constraint 
ERROR: multiple primary keys for table 
ERROR: relation <relation> already exists 
ERROR: trigger <trigger> for relation <relation> already exist 

I 안식처 :

sudo -u postgres psql db < backup.sql 

내가 좋아하는 오류의 목록을 데이터베이스를 변경하지 않았습니다. 간단히 백업을 수행하고 바로 백업을 복원했습니다.

내가 뭘 잘못하고 있니?

+2

백업을 비어 있지 않은 데이터베이스로 복원하고 있습니다. – wildplasser

답변

0

당신은, 기존 데이터베이스에 복원 당신이 원하는 경우 반드시 당신이 --clean 옵션을 사용

-c, --clean 클린 (드롭) --create 수있는 백업 데이터베이스를 교체 데이터베이스 오브젝트를 재 작성하기 전에. (물건이 대상 데이터베이스에 존재하지 않는 경우에 , 일부 무해한 오류 메시지를 생성 할 수 있습니다.)

-C, --create 그것으로 복원하기 전에 데이터베이스를 만듭니다. --clean이 인 경우, 을 연결하기 전에 대상 데이터베이스를 삭제하고 다시 만드십시오.

+0

이러한 플래그를 psql 명령과 함께 사용할 수 있습니까? 잘못된 옵션 오류가 발생합니다. – ScrawnySquirrel

+0

@ScrawnySquirrel 스위치 등을 사용하려면 pg_restore를 사용해야합니다. 또한 백업이 pg_restore의 올바른 형식인지 확인해야합니다. 여기 문서를 참조하십시오. https://www.postgresql.org/docs – Mokadillion

관련 문제