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


当前回答

在原始数据库处于流量状态的生产环境中,我只使用:

pg_dump production-db | psql test-db

其他回答

试试看:

CREATE DATABASE newdb WITH ENCODING='UTF8' OWNER=owner TEMPLATE=templatedb LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' CONNECTION LIMIT=-1;

gl XD公司

新版本的pgAdmin(绝对是4.30)支持从模板创建新数据库。您只需要填充新的数据库名称和现有的模板数据库。

贝尔回答的命令行版本:

createdb -O ownername -T originaldb newdb

这应该在数据库主机(通常是postgres)的权限下运行。

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

答覆:

CREATE DATABASE newdb WITH TEMPLATE originaldb;

经过尝试和测试。

首先,sudo作为数据库用户:

sudo su postgres

转到PostgreSQL命令行:

psql

创建新数据库,授予权限并退出:

CREATE DATABASE new_database_name;
GRANT ALL PRIVILEGES ON DATABASE new_database_name TO my_user;
\d

将结构和数据从旧数据库复制到新数据库:

pg_dump old_database_name | psql new_database_name