pg_restore错误:“关系不存在”并创建新数据库



我已经备份了我的特定表,我想使用以下方法将其还原到新数据库中:

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

这给了我一个"数据库临时不存在"错误。据我了解,这应该已经创建了数据库并恢复了它。

但是,我随后手动创建"临时"数据库并运行:

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

据我了解。

为了创建数据库temppg_restore需要先连接到不同的数据库。

所以使用-d temp是行不通的;你必须指定一个现有的数据库,通常postgres

pg_restore将连接到该数据库,发出CREATE DATABASE temp,连接到temp并继续还原数据。

对我来说

,我安装了pgAdmin 4并通过pgAdmin 4 UI进行了还原,而不是通过cmd进行还原:

pg_restore -d <database_name> -p 5432 -Fc -O -a --no-tablespaces --no-privileges -v -U postgres -j 8 <database_name>.dmp

相关内容

  • 没有找到相关文章

最新更新