在psql
中,我只是将命令pg_dump
运行到自定义格式存档:
Kurts-MacBook-Pro-2:~ kurtpeek$ psql --host localhost.aptible.in --port 64186 --username aptible --dbname db
Password for user aptible:
psql (10.4, server 10.3 (Debian 10.3-1.pgdg80+1))
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
db=# pg_dump --format=custom
db-#
据我了解,这应该将数据库(其名称从环境变量PGDATABASE
获取,并且可能是db
)备份到文件中。但是,对于我来说,这个文件的位置还不清楚吗?
来自--file
选项的文档(https://www.postgresql.org/docs/10/static/app-pgdump.html),
-f file
--file=file
将输出发送到指定的文件。对于基于文件的输出格式,可以省略此参数,在这种情况下使用标准输出。必须为目录输出格式指定它,它指定目标目录而不是文件。在这种情况下,目录由
pg_dump
创建,并且之前不得存在。
我认为custom
格式是基于文件的格式,因此我希望标准输出格式为'要使用的。但是什么是标准输出'在这种情况下? (我检查了我的主目录,但最近没有创建它。)
答案 0 :(得分:3)
事实证明,pg_dump
命令将在命令行中使用,而不是在psql
中使用。事实上,'标准输出'打印到终端(在我的情况下不是我想要的,因为我想使用pg_restore
在本地恢复数据库。)
所以我创建了一个文件(latest.dump
)并写信给它指定了连接选项,以及--format=custom
和--file=latest.dump
:
Kurts-MacBook-Pro-2:~ kurtpeek$ touch latest.dump
Kurts-MacBook-Pro-2:~ kurtpeek$ pg_dump --host=localhost.aptible.in --port=64186 --username=aptible --dbname=db --format=custom --file=latest.dump
Password:
Kurts-MacBook-Pro-2:~ kurtpeek$