在pgAdmin中将整个数据库(其 struct 和数据)复制到新数据库的正确方法是什么?

推荐答案

Postgres允许在创建新数据库时使用服务器上的任何现有数据库作为模板.我不确定pgAdmin是否在"创建数据库"对话框中为您提供了选项,但如果没有,您应该能够在查询窗口中执行以下操作:

CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser;

不过,你可能会得到:

ERROR:  source database "originaldb" is being accessed by other users

要断开所有其他用户与数据库的连接,可以使用以下查询:

SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity 
WHERE pg_stat_activity.datname = 'originaldb' AND pid <> pg_backend_pid();

Postgresql相关问答推荐

锁定模式与PostgreSQL中的另一种锁定模式冲突到底是什么意思?

在 Windows 上使用 rsync 进行 Postgresql 副本升级

求和直到达到一个值 postgresql

表示 SQL 表的 Go struct

如何在typeorm和嵌套js中将运行时变量设置为postgresql

使用间隔参数的 go postgres 准备好的语句不起作用

是否可以在 postgresql 中添加表元数据?

在postgresql中按经纬度查找最近的位置

Flask-SQLAlchemy db.session.query(Model) 与 Model.query

为什么 PostgreSQL 将用户和组合并为角色?

如何在psql中退出查询结果查看器?

无法使用 sequelize 从本地 node 应用程序连接到 heroku postgresql 数据库

Rails:PG :: InsufficientPrivilege:错误:permission denied for relation schema_migrations

PostgreSQL:将结果数据从 SQL 查询导出到 Excel/CSV

向 Postgres 整数数组添加值

如何在 redshift 中对字段进行 GROUP BY 和 CONCATENATE

在 PGAdmin 中搜索所有功能的文本

使用 cte (postgresql) 的结果更新

PostgreSQL - GROUP BY 子句或用于聚合函数

PostgreSQL - 如何将数字字段中的秒数转换为 HH:MM:SS