为什么pg_restore成功返回,但实际上并没有恢复我的数据库?

我有一个Linux服务器上的Postgres 8.4数据库,我已经倾倒使用以下命令:

pg_dump --format=c --exclude-table=log --file=/path/to/output my_db 

然后,我将创build的文件ftp到我的本地Windows 7计算机上,并尝试使用以下命令将文件恢复到本地Postgres 8.4实例:

 pg_restore --create --exit-on-error --verbose c:\path\to\file 

restore命令会生成大量的输出,声称它创build了我的数据库,连接到它,然后按预期创build所有其他表。 但是,当我通过pgAdmin查看本地计算机上的数据库时,恢复的数据库根本不存在。

在尝试排除故障时,我尝试了下面的命令:

 pg_restore --create --exit-on-error --verbose --host=blahblah --username=no_one c:\path\to\file 

当我运行这个命令,即使给出的主机和用户名是完全废话,我仍然从命令完全相同的输出没有任何错误。

有没有人遇到过这个或知道什么可以通过造成这个?

你必须添加一个有效的数据库的名称来初始连接,或者只是将内容转储到STDOUT:

 pg_restore --create --exit-on-error --verbose --dbname=postgres <backup_file>