【发布时间】:2023-03-14 23:45:01
【问题描述】:
我在我的项目中使用的是 postgresql (9.6) 数据库,目前处于开发阶段。
对于生产,我想使用名称略有不同的数据库集群的精确副本/镜像。
我知道我可以在不同的集群名称下进行备份和恢复,但是是否有类似通过 psql 客户端或 pgAdmin (v.4) 的镜像功能来镜像我的所有模式和表并将其放入新的集群名称中?
【问题讨论】:
标签: database postgresql mirror
我在我的项目中使用的是 postgresql (9.6) 数据库,目前处于开发阶段。
对于生产,我想使用名称略有不同的数据库集群的精确副本/镜像。
我知道我可以在不同的集群名称下进行备份和恢复,但是是否有类似通过 psql 客户端或 pgAdmin (v.4) 的镜像功能来镜像我的所有模式和表并将其放入新的集群名称中?
【问题讨论】:
标签: database postgresql mirror
在 PostgreSQL 中,当您想要创建具有该内容的新数据库时,您可以使用服务器上的任何现有数据库(需要空闲才能使其工作)作为模板。您可以使用以下 SQL 语句:
CREATE DATABASE newdb WITH TEMPLATE someDbName OWNER dbuser;
但您需要确保当前没有用户连接或使用该数据库 - 否则您将收到以下错误。
ERROR: source database "someDbName" is being accessed by other users
希望有所帮助;)
【讨论】: