Mac多PostgreSQL实例下Homebrew版14.10关联PostGIS失败问题
步骤1:确认Homebrew PostGIS的扩展目录
执行以下命令查看对应postgresql@14的PostGIS安装路径:
brew info postgis@14
在输出中找到类似/opt/homebrew/Cellar/postgis@14/<版本号>/share/postgresql/extension/的路径,这就是PostGIS扩展文件的存放目录。Homebrew通常会创建符号链接到/opt/homebrew/share/postgresql@14/extension/,这个路径也可以直接使用(不受版本号变更影响)。
步骤2:检查当前PostgreSQL实例的扩展目录
登录到Homebrew的PostgreSQL 14.10实例,执行SQL命令:
SHOW extension_directory;
如果输出为/Library/PostgreSQL/14/share/postgresql/extension/,说明实例确实在错误路径下查找扩展文件。
步骤3:修改PostgreSQL配置文件
- 找到Homebrew postgresql@14的配置文件位置,执行:
brew info postgresql@14
输出中会显示配置文件路径,通常是/opt/homebrew/var/postgresql@14/postgresql.conf。
- 打开该配置文件,找到
extension_directory参数(不存在则添加),将其值设置为步骤1中获取的PostGIS扩展目录,例如:
extension_directory = '/opt/homebrew/share/postgresql@14/extension/'
步骤4:重启PostgreSQL服务
执行命令重启Homebrew的postgresql@14服务:
brew services restart postgresql@14
步骤5:重新创建PostGIS扩展
再次登录PostgreSQL实例,执行:
CREATE EXTENSION IF NOT EXISTS postgis;
此时即可成功加载Homebrew安装的PostGIS扩展。
额外排查:确保使用正确的pg_config
如果上述步骤无效,检查当前环境的pg_config是否对应Homebrew的postgresql@14:
which pg_config
如果输出不是/opt/homebrew/opt/postgresql@14/bin/pg_config,则调整PATH环境变量,将Homebrew的postgresql@14的bin目录放在最前面:
export PATH="/opt/homebrew/opt/postgresql@14/bin:$PATH"
重启终端后重新安装PostGIS:
brew reinstall postgis@14
再重复步骤3-5即可。
内容的提问来源于stack exchange,提问作者David Nunez

