已升级至PostgreSQL@17,如何清除PostgreSQL@14的服务警告?
PostgreSQL@14升级后残留引用的解决方法
原因说明
- Homebrew的
postgresql默认别名未同步更新到@17,执行brew services命令时仍会关联旧版本的服务配置 - 旧版本的PostgreSQL服务配置文件(plist)可能残存在系统或用户的启动代理目录中
brew services内部缓存未清理,仍保留postgresql@14的服务记录
解决步骤
1. 绑定postgresql默认别名到@17版本
执行命令将Homebrew的postgresql通用别名强制指向17版本:
brew link --force postgresql@17
2. 删除残留的旧版本服务配置文件
检查并清理postgresql@14相关的plist文件:
- 检查用户级启动代理目录:
ls ~/Library/LaunchAgents | grep postgresql
如果输出包含homebrew.mxcl.postgresql@14.plist,执行删除:
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql@14.plist
- 检查系统级启动守护进程目录:
ls /Library/LaunchDaemons | grep postgresql
若存在旧版本plist文件,用sudo权限删除:
sudo rm /Library/LaunchDaemons/homebrew.mxcl.postgresql@14.plist
3. 清理brew services缓存
执行命令重置brew services的缓存,彻底清除旧服务记录:
brew services cleanup
4. 验证修复结果
执行以下命令确认警告消失:
brew services stop postgresql brew services list
此时输出应仅显示postgresql@17(或别名postgresql)的服务状态,不再出现postgresql@14相关提示。
额外检查
确保Rails项目的config/database.yml中数据库连接配置正确,且应用使用的PostgreSQL客户端工具(如psql)指向@17版本,避免连接异常。
内容的提问来源于stack exchange,提问作者mwhocl
相关产品推荐
相关产品推荐

