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

求助:Rails未识别到已升级的PostgreSQL当前版本

PostgreSQL版本在Rails中不更新的排查方案
  • 检查Rails数据库配置
    打开项目根目录下的config/database.yml,确认配置的host、port是否指向PostgreSQL 13的实例。如果旧版本PostgreSQL仍在运行,可能会占用默认的5432端口,导致Rails连接到旧实例。同时确认database字段对应的是新实例中创建的数据库,而非旧实例的库。

  • 管理PostgreSQL服务状态
    停止旧版本服务:

    brew services stop postgresql@10
    

    启动新版本服务:

    brew services start postgresql@13
    

    用brew services list验证状态,确保postgresql@13处于started状态,旧版本处于stopped。

  • 重新编译pg gem
    Rails依赖的pg gem可能绑定了旧版本PostgreSQL的库,需要重新编译:

    1. 卸载现有pg gem:
      gem uninstall pg
      
    2. 基于新版本PostgreSQL重新安装:
      gem install pg -- --with-pg-config=/usr/local/opt/postgresql@13/bin/pg_config
      
    3. 如果使用Bundler,先配置编译参数再安装:
      bundle config build.pg --with-pg-config=/usr/local/opt/postgresql@13/bin/pg_config
      bundle install
      
  • 确认环境变量优先级
    在终端执行which psql,确保输出是/usr/local/opt/postgresql@13/bin/psql。检查~/.zshrc中的PATH设置,确保新版本的bin目录放在最前面:

    export PATH="/usr/local/opt/postgresql@13/bin:$PATH"
    

    避免旧版本的路径覆盖新路径。

  • 重启Rails相关进程
    如果项目使用了Puma、Unicorn等应用服务器,需要完全停止并重启这些进程,确保它们加载更新后的环境变量和pg gem。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:25:31