安装PostGIS时PostgreSQL版本与路径匹配异常问题求助
PostgreSQL与PostGIS版本冲突问题解决
问题场景
日常执行init.sql脚本清理数据库模式及表时,突然抛出错误:
error: could not open extension control file
"/usr/local/opt/postgresql@12/share/postgresql@12/extension/postgis.control":
No such file or directory
当前运行的PostgreSQL版本为14.10:
% postgres --version postgres (PostgreSQL) 14.10 (Homebrew)
未修改任何数据库配置,尝试单独安装postgis(brew install postgis)后,执行CREATE EXTENSION IF NOT EXISTS postgis仍报错,且在PostgreSQL 14的扩展目录/usr/local/opt/postgresql@14/share/postgresql@14/extension中找不到postgis.control文件。
解决步骤
问题根源是系统中安装了多个版本的PostgreSQL,导致版本冲突,需彻底清理后重新安装:
- 查看
/usr/local/opt下所有PostgreSQL相关组件:
cd /usr/local/opt && ls
确认目录下存在postgis、postgres、postgresql@12、postgresql@13、postgresql@14。
- 删除相关文件目录:
rm -rf postgis postgresql postgresql@12 postgresql@13 postgresql@14
- 通过Homebrew卸载所有相关包:
brew uninstall postgis postgresql postgresql@12 postgresql@13 postgresql@14
- 重新安装指定版本的PostgreSQL和对应PostGIS:
brew install postgresql@14 postgis
内容的提问来源于stack exchange,提问作者Mike K
相关产品推荐
相关产品推荐

