我在当前处于开发阶段的项目中使用了PostgreSQL(9.6)数据库。
对于生产环境,我想使用名称稍有不同的数据库集群的精确副本/镜像。
我知道我可以使用不同的群集名称进行备份和还原的事实,但是通过psql客户端或pgAdmin(v.4)是否存在类似于镜像功能的镜像,该镜像可以镜像我的所有架构和表并将其放在新的集群名称中?
答案 0 :(得分:2)
在PostgreSQL中,当您要创建具有该内容的新数据库时,可以将服务器上的任何现有数据库(需要空闲以使其正常工作)用作模板。您可以使用以下SQL语句:
CREATE DATABASE newdb WITH TEMPLATE someDbName OWNER dbuser;
但是您需要确保当前没有用户连接或正在使用该数据库-否则您将收到以下错误。
ERROR: source database "someDbName" is being accessed by other users
希望有所帮助;)