我需要创建以下所有命令的转储。
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
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 pg_dump 作为 pg_dump -U devadmin -h ****xxx.rds.amazonaws.com test > Outfile.sql 创建它时
我只能看到与架构相关的命令
CREATE SCHEMA rdstest;
ALTER SCHEMA rdstest OWNER TO rdstest;
Run Code Online (Sandbox Code Playgroud)
如何让 pg_dump 包含所有命令:创建用户命令,将数据库测试连接授予 rdstest 等。
a_h*_*ame 16
pg_dump不能这样做,因为pg_dump只转储单个数据库并且该信息不是一个数据库的一部分,而是全局存储在 Postgres“集群”中。
您需要使用pg_dumpall以下--globals-only选项:
pg_dumpall --globals-only --file=globals.sql
Run Code Online (Sandbox Code Playgroud)