如何从一个 Postgres 实例克隆整个数据库,使其成为另一个实例上托管的数据库的一部分?



我有一个 PostgreSQL 实例A有 10 个表,另一个实例B托管在不同的盒子上,其中包含相同的 10 个表,但也包含许多其他表。我想从小型数据库克隆所有 10 个表A以覆盖它们在较大数据库B中的等效表。有什么好方法可以做到这一点?

我正在考虑的一种途径是对A进行完整的pg_dump,将该转储文件复制到B的主机,然后将其pg_restoreB中。似乎它应该有效,因为我确实希望A上的每个表都覆盖B上的同名表,但我只是有点紧张做一个完整的数据库转储pg_restore,而且我对pg_dumppg_restore也不是很熟悉,所以让知识渊博的人验证该计划会很棒。

您可以使用带有--clean选项的纯格式pg_dump,并指定要转储的表-t.

然后,您将获得一个 SQL 脚本,其中仅包含要替换的表,并且每个表前面都有一个DROP TABLE

您可以在使用脚本之前对其进行检查。

最新更新