Windows11下PostgreSQL15创建pg_tgrm扩展报错:文件存在仍提示找不到
问题分析与解决步骤
你犯的两个关键错误
- 在Windows环境的psql里执行了Linux专属的
yum install postgresql14-contrib命令——yum是RedHat/CentOS等Linux发行版的包管理工具,Windows系统完全不支持这个命令,执行了也毫无作用。 - 你的PostgreSQL 15没有完整安装
contrib扩展包:pg_tgrm属于PostgreSQL的contrib扩展组件,虽然你看到了.control文件,但要么是文件权限导致PG进程无法读取,要么是缺少配套的SQL实现文件(比如pg_tgrm--*.sql),本质是contrib组件没正确部署。
解决步骤
- 检查contrib文件完整性:打开
C:/Program Files/PostgreSQL/15/share/extension/目录,确认除了pg_tgrm.control,还有对应的pg_tgrm--1.0.sql、pg_tgrm--unpackaged--1.0.sql等文件。如果只有.control文件,说明contrib没装全。 - 重新安装contrib组件:运行PostgreSQL 15的官方安装程序,选择「修改(Modify)」选项,在组件列表里勾选「Contrib(扩展工具)」,完成安装流程。
- 重启PG服务:打开Windows服务管理器(按下Win+R,输入
services.msc回车),找到「postgresql-x64-15」服务,右键选择「重启」。 - 重新执行扩展创建命令:回到psql终端或Django的数据库操作中,再次执行
CREATE EXTENSION pg_tgrm;,即可正常创建扩展。
补充说明
同一机器上另一个PG服务器能成功创建该扩展,是因为那台服务器在安装时已经勾选了contrib组件,而你的PG 15安装时漏掉了这个选项,和你看到的.control文件是否存在没有直接关联——可能这个.control是你误复制过来的,或者安装程序只复制了部分文件,但缺少核心的SQL实现文件。
内容的提问来源于stack exchange,提问作者iGiveDrinks
相关产品推荐
相关产品推荐

