我有一个 PostgreSQL 实例A
有 10 个表,另一个实例B
托管在不同的盒子上,其中包含相同的 10 个表,但也包含许多其他表。我想从小型数据库克隆所有 10 个表A
以覆盖它们在较大数据库B
中的等效表。有什么好方法可以做到这一点?
我正在考虑的一种途径是对A
进行完整的pg_dump
,将该转储文件复制到B
的主机,然后将其pg_restore
到B
中。似乎它应该有效,因为我确实希望A
上的每个表都覆盖B
上的同名表,但我只是有点紧张做一个完整的数据库转储pg_restore
,而且我对pg_dump
和pg_restore
也不是很熟悉,所以让知识渊博的人验证该计划会很棒。
您可以使用带有--clean
选项的纯格式pg_dump
,并指定要转储的表-t
.
然后,您将获得一个 SQL 脚本,其中仅包含要替换的表,并且每个表前面都有一个DROP TABLE
。
您可以在使用脚本之前对其进行检查。