如何在復原時建立資料庫

如何在復原時建立資料庫

我希望 pg_restore 在 Debian 10 上使用 Postgres 12 復原之前建立資料庫

我試過

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

相關內容