正确使用pg_dump和pg_restore

时间:2018-02-12 12:39:52

标签: postgresql pg-dump pg-restore

所以我经常使用pgadmin4备份和恢复数据库和模式。我想使用pg_dump和pg_restore等命令批处理文件。然而,我总是在这方面没有成功,可以使用一些帮助。我尝试转储一个模式(带数据)的方式如下:

pg_dump -U postgres -F c -d database -n schema > mw2

然后我尝试用pg_restore恢复它:

pg_restore -U postgres -d otherdatabase -n schema mw2

首先我尝试使用.dump而不是tar,但结果保持不变;这是我数据库中的空架构。

或以下错误消息:

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

1 个答案:

答案 0 :(得分:3)

https://www.postgresql.org/docs/current/static/app-pgrestore.html

  

- format = format指定存档的格式。没有必要指定格式,因为pg_restore将确定格式   自动。如果指定,则可以是以下之一:

自定义,目录和焦油

https://www.postgresql.org/docs/current/static/app-pgdump.html

- 格式=格式

  

选择输出的格式。格式可以是以下之一:

     

p plain输出纯文本SQL脚本文件(默认值)。

其他人是自定义,目录和焦油

简而言之 - 您使用了defualt plain 格式,该格式适用于psql,而不是pg_restore。因此,要么使用pg_dump指定不同的格式,要么将文件用作

psql -f  mw2.tar