PIGSTY

移除

如何移除 PostgreSQL 扩展

移除扩展

要卸载扩展,您通常需要运行 DROP EXTENSION SQL 语句:

DROP EXTENSION "<extname>";

如果其他扩展或数据库对象依赖于此扩展,您需要先移除这些依赖项才能卸载扩展。 或者使用 CASCADE 选项一次性移除所有依赖:

DROP EXTENSION "<extname>" CASCADE;

CASCADE 选项将删除所有依赖于此扩展的对象,
包括数据库对象、函数、视图等。请谨慎使用!

某些扩展没有 DDL,这些扩展不需要 DROP EXTENSION 语句来卸载。 相反,您可以简单地从 shared_preload_libraries(如果已配置)中移除扩展并卸载包。 请参考无 DDL 扩展部分了解更多详细信息。


移除加载

如果您使用的扩展需要动态加载(修改 shared_preload_libraries 参数),您需要首先重新配置 shared_preload_libraries 参数。

shared_preload_libraries 中移除扩展名称,并重启数据库集群以使更改生效。

对于需要动态加载的扩展,请参考需要加载的扩展列表。


卸载包

在从集群中的所有数据库中移除扩展(逻辑对象)后,您可以安全地卸载扩展的软件包。Ansible 命令可以帮助您方便地执行此操作:

ansible <cls> -m package -a "name=<extname> state=absent"

您也可以使用 pig,或直接使用 apt/yum 命令来卸载。

如果您不知道扩展包名称,可以参考扩展列表或查看在 roles/node_id/vars 中定义的扩展包名称映射。