我需要创建以下所有命令的转储。
test=> create user rdstest login password 'rdstest';
CREATE ROLE
test=> grant connect on database test to rdstest;
GRANT
test=> create user devadmin login password 'devtest';
CREATE ROLE
test=> grant connect on database test to devadmin;
GRANT
test=> grant rdstest to devadmin with admin option;
GRANT ROLE
test=> grant rdstest to devadmin;
GRANT ROLE
test=> create schema authorization rdstest;
CREATE SCHEMA
当我尝试使用pg_dump创建它时作为pg_dump -U devadmin -h ****xxx.rds.amazonaws.com test> Outfile.sql
我只能看到与架构相关的命令
CREATE SCHEMA rdstest;
ALTER SCHEMA rdstest OWNER TO rdstest;
如何使pg_dump包含所有命令:创建用户命令,在数据库测试中授予对rdstest的连接等。
pg_dump
不能这样做,因为pg_dump
只转储单个数据库,并且该信息不是某个数据库的一部分,而是全局存储在Postgres"集群"中。
为此,您需要使用 --globals-only
选项使用pg_dumpall
:
pg_dumpall --globals-only --file=globals.sql