我正在不同的机器(PostgreSQL)上使用相同的数据库模式。我想知道,如何将数据从一台机器合并到另一台机器。 Schema有很多表(大约10个)。我想要实现什么目标?
我正在尝试将数据从机器A转储到简单的SQL插入命令,但是当我尝试恢复它时,我遇到了重复的键错误。更重要的是,我想从命令行恢复数据(我必须导入250 MB数据),因为现在我正在尝试使用pgAdmin手动执行此操作。
最好的方法是什么?
答案 0 :(得分:8)
我终于这样做了:
导出到转储:
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>