我有时需要同步两个 PostgreSQL 数据库(一些从开发数据库到生产数据库的表)。
所以我想出了这个脚本:
[...]
pg_dump -a -F tar -t table1 -t table2 -U user1 dbname1 | \
pg_restore -a -U user2 -d dbname2
[...]
问题是这仅适用于新添加的行。当我编辑非 PK 列时,出现约束错误并且行未更新。对于每个转储行,我需要检查它是否存在于目标数据库中(通过 PK),如果存在,则在 INSERT/COPY 之前将其删除。
感谢您的建议。