我有一个数据库,有些表在dev服务器上定期更新,需要推送到prod服务器上的数据库。使用pg_dump和pg_restore将更新后的表从dev数据库迁移到prod数据库的适当方法是什么?我可以把整个数据库转储到dev服务器上,然后在prod服务器上恢复,但有些表包含动态数据(由应用程序创建/更新),这两个数据库之间不同,所以这些表必须保留在prod服务器上。仍然有一些表包含静态数据,这些数据不会被更改,也不需要在prod服务器上更新,尽管它是好的,更新一下。
所以基本上我想做的是使用pg_dump和pg_restore(版本15.4)来更新prod服务器上数据库的一些表中的数据,使用dev服务器上数据库中相应表的数据。谢谢。
P.S.我已经阅读了pg_dump和pg_restore的手册页,但仍然不清楚如何做我想要的。我已经尝试了一些测试,并没有像我预期的那样工作。我也在网上搜索,没有看到解决相同问题的帖子。
1条答案
按热度按时间blpfk2vs1#
添加
--clean --if-exists
可以覆盖整个表,而使用--schema='specific_schema'
和--table='specific_table'
可以缩小pg_dump
的目标范围,跳过其他所有目标。字符串
@Adrian Klaver提到的
postgres_fdw
可以让您链接dev
上的对象,使其在prod
上可见和可访问,就像它们在本地一样,这让您可以直接使用它们,或者从DML引用它们,以便在prod
内基于dev
现场执行必要的prod
更新。Demo:型
该文档还记录了多种复制方法,这些方法允许您设置将数据从
dev
移动到prod
的自动过程。特别是,您可以设置logical replication以在prod
上“重播”在dev
上发生的特定更改。