为什么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>