다른 서버의 데이터베이스에서 백업을 수행했으며이 명령을 사용하여 필요한 역할과 다른 역할을합니다.
pg_dump -Fc db_name -f db_name.dump
그런 다음 데이터베이스를 복원해야하는 다른 서버에 백업을 복사했지만 해당 데이터베이스에 사용 된 소유자가 없습니다. 데이터베이스에 owner owner1
가 있지만 다른 서버에서는 내가 가지고 owner2
있는 데이터베이스 만 복원하고 소유자를 변경해야 한다고 가정 해 보겠습니다 .
복원 할 때 다른 서버에서 수행 한 작업 :
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
그러나 복원이 실행되면 다음 오류가 발생합니다.
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
소유자를 변경하려면 어떻게 지정할 수 있습니까? 아니면 불가능합니까?
--no-owner
수락 된 답변에서 제안한 것 외에도--no-privileges
. 참조 이 답변