我使用以下命令备份了我想要恢复到新数据库的特定表:
call pg_dump -Fc -h server -d database -U user -p password -v -f dump.sql -t public.table1 -t public.table2
我没有问题。
然后,我想通过使用:
创建一个带有pg_restore的新数据库来恢复转储call pg_restore --clean --create -d temp -h server -p password -U user dump.sql
这给了我一个"数据库temp不存在"错误。这应该已经创建了数据库,并据我所知还原它。
我然后然后创建" temp"数据库手动并运行:
call pg_restore --clean --create -d temp -h server -p password -U user dump.sql
这是通过,但不会创建表并给我一个错误"关系表1"和"关系表2"不存在,只为两个表创建相应的id_sequences。
我真正想要的是不必手动创建新数据库,并且使用以下命令通过pg_restore将备份中的所有表还原到一个全新的数据库中:
call pg_restore --clean --create -d temp -h server -p password -U user dump.sql
据我了解。
答案 0 :(得分:1)
为了创建数据库temp
,首先需要将pg_restore
连接到不同的数据库。
所以不能使用-d temp
;您必须指定现有数据库,通常为postgres
。
pg_restore
将连接到该数据库,发出CREATE DATABASE temp
,连接到temp
并继续恢复数据。