加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将PostgreSQL扩展安装到所有模式

发布时间:2020-12-13 16:30:05 所属栏目:百科 来源:网络整理
导读:我正在使用PostgresQL 9.1.1尝试在所有架构上使用扩展 unaccent. 所以我运行了命令CREATE EXTENSION unaccent;.哪个有效,但仅适用于search_path上设置的当前架构.所以这意味着如果我更改search_path,我就不能再调用unaccent了.如何使此扩展可用于特定数据库
我正在使用PostgresQL 9.1.1尝试在所有架构上使用扩展 unaccent.

所以我运行了命令CREATE EXTENSION unaccent;.哪个有效,但仅适用于search_path上设置的当前架构.所以这意味着如果我更改search_path,我就不能再调用unaccent了.如何使此扩展可用于特定数据库中的所有模式?

提前致谢!

接受的答案是一个糟糕的建议.不要在pg_catalog架构中安装扩展.

CREATE EXTENSION unaccent;将扩展安装到公共模式中.为了实现它,只需在更改search_path时包括:

set search_path = my_schema,public;

或者更好地创建包含所有扩展的模式,然后始终将该模式附加到search_path.

create schema extensions;

-- make sure everybody can use everything in the extensions schema
grant usage on schema extensions to public;
grant execute on all functions in schema extensions to public;

-- include future extensions
alter default privileges in schema extensions
   grant execute on functions to public;

alter default privileges in schema extensions
   grant usage on types to public;

现在安装扩展程序:

create extension unaccent schema extensions;

然后在search_path中使用include该模式

set search_path = my_schema,extensions;

如果您不想为您创建的每个新数据库重复上述步骤,请在连接到template1数据库时运行上述步骤.您甚至可以通过编辑postgresql.conf或使用alter system在默认search_path中包含扩展架构

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读