【发布时间】:2012-07-10 10:10:27
【问题描述】:
我需要一次性将数据从 PostgreSQL 数据库中的一个表复制到另一个数据库中的相应表中。没有那么多数据:大约 2500 行,8 列(一些数字,一些 varchar)。
我的第一个想法是简单地 pg_dump -a -t table -f output.file 然后 pg_restore 在另一个数据库上。然而,事实证明,pg_dump 和源服务器的版本不匹配——而且我无法控制版本,所以升级不是一种选择:
pg_dump: server version: 9.1.2; pg_dump version: 9.0.5
pg_dump: aborting because of server version mismatch
不幸的是,在 Postgres 版本 9 中,选项 -i(忽略版本)不再可用。我确实知道我在做什么,但它仍然不会让我(自然)。
我还有什么其他选择?
【问题讨论】:
-
您是否尝试使用纯文本转储 (
pg_dump -Fp)? (这是一个使用psql“恢复”的SQL脚本) -
pg_dump在遇到版本不匹配时立即中止而不查看其他任何内容 -
只有当你走错路时它才会停止。 IE。 8.4.13 的 pg_dump 可以无错误地从 8.3.x 转储。
-
请仔细阅读我的问题:pg_dump from 9.1.2 does not dump data from 9.0.5