在 SQL 转储中设置search_path



在使用 11.4 版的数据库中pg_dump psql转储中,search_path设置如下:

SELECT pg_catalog.set_config('search_path', '', false); 

我正在尝试使用另一个模式(即不是public(,并通过设置 search_path 使这个新模式成为特定角色的默认模式。换句话说:

ALTER ROLE myrole IN DATABASE mydatabase SET search_path TO myschema,public;

目前,即使我可以以该角色登录 psql 并验证是否已使用 SELECT * FROM current_setting('search_path'); 设置search_path也无法将该更改导出到转储中,这意味着我必须假设它已正确设置。

但是,我希望使用pg_dump将其作为转储文件中的命令完成,而不是自己在psql中设置它并隐式假设它已正确设置。这能做到吗?pg_dump中是否有我缺少的设置?

角色(用户(是 Postgres 实例(又名"集群",又名"数据目录"(的全局角色,并在该实例中的所有数据库之间共享。

pg_dump 不会转储全局对象,因为它只转储数据库内容。

要查看角色的更改,您需要使用 pg_dumpall 转储"全局变量"

pg_dumpall --globals-only -f globals.sql

相关内容

  • 没有找到相关文章

最新更新