pg_restore ERROR: “Relation does not exist” and creating new database
pg_restore ERROR: “Relation does not exist” and creating new database
我已经备份了我想要恢复到新数据库中的特定表,使用:
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
这给了我一个 "database temp does not exist" 错误。据我所知,这应该已经创建并恢复了数据库。
我然后手动创建 "temp" 数据库和 运行:
call pg_restore --clean --create -d temp -h server -p password -U user dump.sql
这跟进了,但没有创建表并给我一个错误 "relation table1" 和 "relation table2" 不存在并且只为两个表创建相应的 id_sequences。
我真正想要的是不必手动创建新数据库,并且备份中的所有表都通过 pg_restore 使用以下方法恢复到全新的数据库中:
call pg_restore --clean --create -d temp -h server -p password -U user dump.sql
据我了解。
为了创建数据库 temp
,pg_restore
需要先连接到 不同的 数据库。
所以用-d temp
不行;您必须指定一个现有数据库,通常是 postgres
.
pg_restore
将连接到该数据库,发出 CREATE DATABASE temp
,连接到 temp
并继续恢复数据。
我已经备份了我想要恢复到新数据库中的特定表,使用:
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
这给了我一个 "database temp does not exist" 错误。据我所知,这应该已经创建并恢复了数据库。
我然后手动创建 "temp" 数据库和 运行:
call pg_restore --clean --create -d temp -h server -p password -U user dump.sql
这跟进了,但没有创建表并给我一个错误 "relation table1" 和 "relation table2" 不存在并且只为两个表创建相应的 id_sequences。
我真正想要的是不必手动创建新数据库,并且备份中的所有表都通过 pg_restore 使用以下方法恢复到全新的数据库中:
call pg_restore --clean --create -d temp -h server -p password -U user dump.sql
据我了解。
为了创建数据库 temp
,pg_restore
需要先连接到 不同的 数据库。
所以用-d temp
不行;您必须指定一个现有数据库,通常是 postgres
.
pg_restore
将连接到该数据库,发出 CREATE DATABASE temp
,连接到 temp
并继续恢复数据。