Postgresql
為什麼 pg_restore 忽略 –create ?錯誤:失敗:致命:數據庫“new_db”不存在
我正在嘗試執行以下命令:
sshpass -p "pass" ssh x@1.2.3.4 "pg_dump -Fc -U foo some_db" | pg_restore --create --dbname=new_db
我得到:
failed: FATAL: database "new_db" does not exist
這是因為它是 pg_restore 的工作方式。
pg_restore 手冊內容如下:
-C, –create 在恢復之前創建數據庫。如果還指定了 –clean,則在連接到它之前刪除並重新創建目標數據庫。
使用此選項時,以 -d 命名的數據庫僅用於發出初始 DROP DATABASE 和 CREATE DATABASE 命令。所有數據都恢復到存檔中出現的數據庫名稱中。
當且僅當不使用 -C 時,-d 才會在給定的數據庫中恢復。如果使用 -C,則數據庫用作“啟動板”,而不是目標。