启用扩展
如何通过
CREATE EXTENSION
在 PostgreSQL 数据库中真正启用扩展?Module:
列出可用扩展
安装 PostgreSQL 扩展后,您可以在 PostgreSQL 的 pg_available_extensions
视图中看到它们。但想要实际启用扩展,通常还需要额外的步骤:
- 一部分扩展要求被添加到
shared_preload_libraries
中动态加载,例如timescaledb
,citus
等。 - 大部分扩展都需要通过 SQL 语句:
CREATE EXTENSION <name>;
启用,极少量扩展不需要,例如wal2json
。
- 修改
shared_preload_libraries
: - 执行
CREATE EXTENSION
:- 在数据库集群初始化前,可以在
pg_databases
.extensions
列表中指定。 - 当数据库已经初始化完毕后,您可以直接连接数据库执行此 SQL 命令,或使用其他模式变更工具管理扩展。
- 在数据库集群初始化前,可以在
从原理上讲:PostgreSQL 的扩展通常由 Control文件(元数据,一定存在),SQL文件(SQL语句,可选),So文件(二进制动态连接库,可选)三部分组成。 提供
.so
文件的扩展有可能需要添加到shared_preload_libraries
才能生效,例如citus
与timescaledb
,但也有许多扩展不用,例如postgis
,pgvector
。 不通过 SQL 接口对外服务的扩展不需要执行CREATE EXTENSION
,例如提供 CDC 抽取能力的wal2json
扩展。
在您希望启用扩展的数据库中执行 CREATE EXTENSION
SQL 语句,即可完成扩展的创建:
CREATE EXTENSION vector; -- 安装向量数据库扩展
CREATE EXTENSION hydra; -- 安装列存数据库扩展
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.