Postgresql
為什麼 pg_restore 在從轉儲恢復之前無法使用 –create 選項創建數據庫?
為什麼 pg_restore 在從轉儲恢復之前無法使用 –create 選項創建數據庫?
pg_restore --username=myuser --create --dbname=mydb --verbose mybackup
錯誤,
pg_restore: [archiver (db)] connection to database "mydb" failed: FATAL: database "mydb" does not exist
為了創建數據庫,它需要能夠連接到您的數據庫伺服器才能發出“CREATE DATABASE”命令。連接到伺服器需要你指定一個現有的數據庫來連接,顯然那個數據庫不能是不存在的數據庫,而是要創建的數據庫。通常為維護操作保留一些特殊的數據庫,通常
postgres
,您可以為此目的連接到這些數據庫。使用
--create
模式時,--dbname
指定的不是要恢復到的數據庫的名稱,而是要用於創建其他數據庫的數據庫的名稱。
沒有
-C
它按預期工作。例如,如果我想基於 exampleDB 製作一個 exampleDB_dev,我將執行以下操作:pg_dump -Fc exampleDB > exampleDB_temp.dump dropdb exampleDB_dev <created empty exampleDB_dev database> pg_restore -d exampleDB_dev exampleDB_temp.dump