【发布时间】:2018-11-28 19:50:42
【问题描述】:
假设我在本地机器上有db0,在远程服务器上有db1。我只想让db1 与db0 保持同步。
假设我在db0 中的my_table 中添加了几(千)行,现在我想将其插入到db1 中的my_table。
关于 pg_dump/pg_restore 的所有配方和文档都说要完全恢复表,但是,我不需要(也不想)删除并从头开始恢复 my_table。
有没有什么清晰而简单的方法来制作一个文件,scp 到服务器,然后 pg_restore 来自它?
只有两个命令:用于 pg_dump 和用于 pg_restore。因为我正在浏览文档和演练大约两个小时,发现新错误并且越来越困惑。
【问题讨论】:
-
听起来 pg_dump 和 pg_restore 并不是你真正应该使用的......据我所知,它们实际上更多地用于完全恢复数据库/表,而不仅仅是插入特定记录。我会对解决方案感兴趣,我正在考虑从 db0 文件创建某种临时表(可能使用 COPY?),然后在记录与目标表不匹配的临时表上插入从选择。但可能有一些更简单的 postgres 魔法。
-
COPY 有时会在换行符上中断 (stackoverflow.com/questions/38315121/…),这就是为什么我想坚持使用 pg_restore...
-
@zyd 如果您对解决方案感兴趣 - 请投票,让 pg 向导更容易注意到它
标签: postgresql pg-dump pg-restore