You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mac上为Postgres.app安装pgRouting?恢复备份报错求助

解决Mac系统中Postgres.app安装pgRouting的问题

你遇到的extension "pgrouting" does not exist报错,本质是当前PostgreSQL实例未安装pgRouting扩展,下面是针对Postgres.app的具体解决步骤:

步骤1:确认PostgreSQL版本

先打开Postgres.app查看正在使用的PostgreSQL版本(比如15、16),或者在终端执行命令快速确认:

psql --version

注意:后续安装的pgRouting版本必须和PostgreSQL版本完全匹配,版本不兼容会直接导致安装失败。

步骤2:通过Homebrew安装对应版本的pgRouting

Postgres.app本身不自带pgRouting,我们可以用Homebrew来安装适配版本的扩展:

  1. 若你还未安装Homebrew,先在终端执行安装命令:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. 安装对应版本的pgRouting,假设你的PostgreSQL是16版,就执行:
    brew install pgrouting@16
    
    记得把@16替换成你实际的PostgreSQL版本号。

步骤3:复制pgRouting扩展文件到Postgres.app目录

Homebrew安装的扩展文件需要放到Postgres.app能识别的路径中:

  1. 找到Postgres.app的扩展目录,以16版为例,路径通常是:
    /Applications/Postgres.app/Contents/Versions/16/share/postgresql/extension/
    
  2. 查看Homebrew安装的pgRouting路径,执行:
    brew --prefix pgrouting@16
    
    输出类似/usr/local/opt/pgrouting@16,扩展文件在该路径下的share/postgresql/extension/子目录中。
  3. 复制所有以pgrouting开头的文件到Postgres.app的扩展目录:
    cp /usr/local/opt/pgrouting@16/share/postgresql/extension/pgrouting* /Applications/Postgres.app/Contents/Versions/16/share/postgresql/extension/
    

步骤4:在目标数据库中创建pgRouting扩展

打开psql终端(或Postgres.app内置的SQL编辑器),连接到你要恢复备份的数据库,执行:

CREATE EXTENSION pgrouting;

如果没有报错,说明安装成功。此时再恢复备份文件,就不会出现extension "pgrouting" does not exist的错误了。

额外提示

  • 若备份文件中包含CREATE EXTENSION pgrouting;语句,建议先在目标数据库中执行该语句,再恢复其他内容;或者直接修改备份文件的执行顺序,优先创建扩展。
  • 后续如果更新Postgres.app的版本,需要重新执行步骤2-3,因为新版本的PostgreSQL会使用新的扩展目录。

内容的提问来源于stack exchange,提问作者Madhushan Ratnakumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:06:00