为了避免叙述唐突,先介绍一下环境背景
项目开发链接的是公司局域网服务器上的数据库,经常需要从此数据库打包数据交给领导,数据库用的是PostgreSQL,而且以前没有接触过使用dmp格式来备份数据。这次研究了一下,但是踩到了许多坑,上网查询前辈们的经验也是只言片语。不过好在最终把问题解决了,在这里将自己的方法和前辈们的经验汇总一下,方便有踩到同样坑的朋友参考。
下面开始正文
一开始我是从数据库管理工具
Navicat
和pgAdmin
上寻找导出数据的办法,折腾一番后数据可以导出,但就是没有dmp格式的。后来经过上网查询,前辈们说PostgreSQL自带的pg dump
可以完成这个任务,但,pg dump
到底是什么?在哪?怎么用?网上的大神前辈们几乎不屑去描述这些小问题,所以这是我的第一步:找到所谓的pg dump
。如果你的PC上安装了PostgreSQL,请找到你的安装目录,然后在安装目录下找到
bin
目录,仔细找找看,是不是有个可执行文件叫pg_dump.exe
呢?别忙点开它,不是直接双击来用它。
我的Windows 10系统下,所述路径为:C:\Program Files\PostgreSQL\9.6\bin,切合你自己的实际系统环境,找一找吧。pg dump
找到了,现在的问题是怎么去执行它,网上的资料说用命令行。我试过用PostgreSQL自带的
SQL Shell
,在里面键入命令去执行,但是不行。原因可能是pg_dump是可执行程序,在sql shell下不能用(大牛别笑,像我们这些菜鸟真的不懂)
后来想到了用Windows的cmd去执行,然而这才是正确方法。打开cmd,键入正确的路径,运行
pg_dump.exe
可执行文件,命令如下,各位根据自己系统环境路径自行尝试C:\Users\Windows10>cd C:\Program Files\PostgreSQL\9.6