所以我经常使用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
答案 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