
Debian 10에서 Postgres 12를 사용하여 복원하기 전에 pg_restore가 데이터베이스를 생성하도록 하고 싶습니다.
나는 노력했다
PG_COLOR=auto
PGHOST=localhost
PGPASSWORD=mypass
PGUSER=postgres
export PGHOST PGPASSWORD PG_COLOR PGUSER
pg_restore --clean --create --if-exists --dbname=mydb --jobs=4 --verbose "mydb.backup"
하지만 오류가 발생했습니다
pg_restore: 복원을 위해 데이터베이스에 연결 중 pg_restore: 오류: "mydb" 데이터베이스 연결 실패: 치명적: "mydb" 데이터베이스가 존재하지 않습니다.
복원하기 전에 데이터베이스를 생성하는 방법은 무엇입니까?
Debian 10에서 Postgres 12 사용
답변1
pg_restore선적 서류 비치이 오류를 설명합니다.
-C --만들기
데이터베이스를 복원하기 전에 데이터베이스를 생성하십시오. --clean도 지정된 경우 대상 데이터베이스에 연결하기 전에 대상 데이터베이스를 삭제하고 다시 생성하십시오.
--create를 사용하면 pg_restore는 데이터베이스의 설명(있는 경우)과 이 데이터베이스에 특정한 구성 변수 설정(즉, ALTER DATABASE ... SET ... 및 ALTER ROLE ... IN DATABASE ...)도 복원합니다. SET ... 이 데이터베이스를 언급하는 명령입니다. --no-acl을 지정하지 않으면 데이터베이스 자체에 대한 액세스 권한도 복원됩니다.
이 옵션을 사용하면,-d로 명명된 데이터베이스는 초기 DROP DATABASE 및 CREATE DATABASE 명령을 실행하는 데에만 사용됩니다.. 모든 데이터는 아카이브에 나타나는 데이터베이스 이름으로 복원됩니다.
-d
예를 들어 -d postgres
또는 를 사용 하여 기존 데이터베이스를 에 전달해야 합니다 -d template1
. 또한 백업에는 CREATE DATABASE
와 함께 사용되는 인수에 따라 존재 여부가 결정되는 명령이 포함되어야 합니다 pg_dump
.