微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql – 在Postgres数据库中的多个模式上安装hstore的最佳方法?

我正在开发一个需要在多个模式上使用hstore的项目.
安装hstore扩展的’public’模式在任何地方都不可用,因为我的范围不在’public’查找.在一些试用版中,我在名为“hstore”的模式上创建了扩展,并在所使用的每个可用范围(搜索路径)上使用了模式.

基于此,我提出了一些问题:

>是否可以为扩展名创建架构?或者,最好是在每个模式上创建扩展(例如,customer_1,customer_2等等)?
>在单独的模式中创建扩展是否会影响数据的存储位置?我正在使用多个模式来使备份/恢复更容易,并且实际上不希望pg将所有hstore数据存储在单个模式的隐藏表(如blob的pg_large_objects)中.

每个数据库不允许多次安装扩展.引用 the manual on CREATE EXTENSION

Remember that the extension itself is not considered to be within any
schema: extensions have unqualified names that must be unique
database-wide. But objects belonging to the extension can be within schemas.

如果您不想在search_path中包含public,请将“public”扩展安装到专用架构中(例如:extensions).我会为所有这些使用单个模式,而不是每个扩展的单独模式. There are quite a few of them.
CREATE EXTENSION提供了一个安装到您选择的现有架构的选项:

CREATE EXTENSION hstore SCHEMA extensions;

并确保架构包含在可能想要使用它的用户的search_path中.

> How does the search_path influence identifier resolution and the “current schema”

数据存储完全不受扩展所在的架构的影响.

原文地址:https://www.jb51.cc/postgresql/192043.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐