我在不同的机器上使用相同的数据库模式(PostgreSQL)。我想知道,如何将数据从一台机器合并到另一台机器。Schema有许多表(大约10个)。我想实现什么?
将数据从计算机A转储到文件A.dmp
将数据从文件A.dmp还原到计算机B
当机器B中已经存在一个记录时,我不想把它插入到机器B中。
我试图将数据从机器A转储到简单的SQL inserts命令,但是当我试图还原它时,我得到了重复的键错误。更重要的是,我想从命令行恢复数据(我必须导入250MB的数据),因为现在我正试图用pgAdmin手动恢复。
最好的方法是什么?

最佳答案

我终于这样做了:
导出到转储:

pg_dump -f dumpfile.sql --column-inserts -a -n <schema> -U <username> <dbname>

为所有表设置唯一跳过
CREATE OR REPLACE RULE skip_unique AS ON INSERT TO <table>
    WHERE (EXISTS (SELECT 1 FROM <table> WHERE users.id = new.id))
    DO INSTEAD NOTHING

使用psql导入
\i <dumpfile.sql>

关于postgresql - 如何将转储从PostgreSQL合并到数据库中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20187947/

10-12 01:41
查看更多