Postgres pg_restore命令用于恢复完整模式

时间:2016-10-24 05:58:21

标签: postgresql postgresql-9.4

正在使用Postgres EnterpriseDB 9.5.0.5

我使用以下命令

进行了模式转储
pg_dump -n 'schema1' db1 > schema1.dump

现在我想在不同的数据库(db2)中恢复它我必须使用的命令。

我试过

pg_restore -d DB2 schema1.dump;

但显示错误

pg_restore: [archiver] input file does not appear to be a valid archiver

2 个答案:

答案 0 :(得分:0)

您有两种选择:

  1. 如果你没有为pg_dump包含-f选项,它会创建一个sql脚本,然后使用psql恢复,而不是pg_restore
  2. 您可以添加-fc以创建自定义二进制/压缩格式,然后在尝试时使用pg_restore。
  3. 然而,pg_restore主要将归档文件转换为SQL脚本,因此当您使用sql脚本开始时它无用。

答案 1 :(得分:0)

pg_dump -Fc mydb > db.dump

pg_restore -c -d mydb db.dump