【发布时间】:2018-06-30 22:47:51
【问题描述】:
我正在尝试将表的内容从一个 postgres 服务器迁移到另一个。
两个数据库的表结构相同,但数据库名和用户名不同。
在我的源数据库中,我使用此命令导出表格内容...
pg_dump -a -U postgres -d postgres -t clust -f f:\dump\clust.dump.psql
这是以用户 'postgres' 连接到数据库 'postgres' 并将表 'clust' 的内容转储到指定文件。
然后我将文件复制到目标服务器并尝试使用以下内容来恢复它....
pg_restore -a -U testapp -d testdb -t clust -f f:\dump\clust.dump.psql
命令和pg_dump很相似,只不过这次的数据库叫'testdb',用户名是'testapp'。
这会产生错误......
pg_restore: options -d/--dbname and -f/--file cannot be used together
我该如何解决这个问题?如果没有文件定义,命令将不知道从哪里恢复,如果没有数据库名称,它将不知道要连接到哪一个?
注意 - 两台机器都是 windows,运行相同版本的 postgres。它们没有联网在一起,因此通过将可移动驱动器依次连接到每台机器来传输数据。
【问题讨论】:
-
pg_dump创建一个 SQL 脚本。您需要使用psql运行它 -
谢谢@a_horse_with_no_name - 下次我一定记得阅读小字 - 我假设 pg_dump 和 pg_restore 是互惠函数!
标签: postgresql