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


当前回答

创建数据库转储

cd /var/lib/pgsql/
pg_dump database_name> database_name.out

重新记录数据库转储

psql -d template1
CREATE DATABASE database_name WITH  ENCODING 'UTF8' LC_CTYPE 'en_US.UTF-8' LC_COLLATE 'en_US.UTF-8' TEMPLATE template0;
CREATE USER  role_name WITH PASSWORD 'password';
ALTER DATABASE database_name OWNER TO role_name;
ALTER USER role_name CREATEDB;
GRANT ALL PRIVILEGES ON DATABASE database_name to role_name;


CTR+D(logout from pgsql console)
cd /var/lib/pgsql/

psql -d database_name -f database_name.out

其他回答

使用pgAdmin,断开要用作模板的数据库。然后选择它作为创建新数据库的模板,这样可以避免出现已在使用中的错误。

在pgAdmin中,您可以从原始数据库进行备份,然后只需创建一个新数据库并从刚刚创建的备份中恢复:

右键单击源数据库,备份。。。并转储到文件。右键单击,新建对象,新建数据库。。。并命名目的地。右键单击新数据库,还原。。。然后选择文件。

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

答覆:

CREATE DATABASE newdb WITH TEMPLATE originaldb;

经过尝试和测试。

用模板创建数据库新数据库originaldb所有者dbuser;

如果你使用过Ubuntu。1路createdb-O所有者-T old_db_name new_db_name

2路创建数据库测试副本pg_dump old_db_name | psql测试副本

贝尔回答的命令行版本:

createdb -O ownername -T originaldb newdb

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