将表数据从一个DB复制到另一个DB

时间:2010-01-13 22:36:40

标签: python linux macos postgresql

对于开发,我发现自己需要经常将表信息从一个表复制到另一个表。我很好奇为Postgres做这个最简单的解决方案是什么。我有PGAdminIII,但它看起来真的只支持漫长的备份/恢复。

是否有某个地方的python或bash脚本或者我可以给它基本信息的东西?

  • 这是DB1
  • 这是DB2
  • 复制表格......
  • 转至!

我相信SQLYog在Win32中为MySQL做了这个,但我现在使用的是OSX并使用Postgres。

2 个答案:

答案 0 :(得分:7)

Kettle,又名pentaho数据集成可以为您完成此任务。 http://sourceforge.net/projects/pentaho/files/Data%20Integration/

  1. 下载水壶并解压缩。
  2. 确保您拥有一个Java运行时环境(1.5和1.6都适用于3.2稳定版本)。
  3. 运行spoon.sh
  4. 创建新作业(文件/新/作业)
  5. 定义源和目标连接(单击树上方的视图按钮,单击数据库连接节点上的dbl以打开连接向导或执行菜单/向导/创建数据库连接向导)
  6. 执行菜单/向导/复制表向导
  7. 按照向导步骤
  8. 运行作业(工具栏上的播放按钮)

答案 1 :(得分:3)

如果您只是在两个PostgreSQL数据库之间移动,一个好方法是在管道(或pg_dump和psql)中使用pg_dump和pg_restore。基本上

pg_dump -Fc db1 | pg_restore -d db2 -c

(根据您的环境调整开关,请参阅手册页)

这是你已经安装的工具,如果你只是想传输数据而不是修改数据,那么它将比像Kettle这样的完整ETL快得多。