Linux 上 pgAdmin 的更新与升级步骤
一 通用准备
- 备份与变更记录
- 备份 pgAdmin 配置与数据目录(常见路径:/var/lib/pgadmin、/etc/pgadmin),以及你的数据库与服务器访问凭据。
- 记录当前版本与部署方式(如:RPM/DEB 包、Docker、源码/虚拟环境),便于回滚与对比。
- 维护窗口与依赖检查
- 选择低峰时段执行,避免业务中断;确认系统仓库与 GPG 可用,确保磁盘与内存充足。
- 服务与访问
- 计划停机或切换到维护页;如使用反向代理(如 Nginx),准备同步更新与重载配置。
二 RPM 系发行版 CentOS Stream 8 Rocky Linux 8 AlmaLinux 8
- 更新系统并启用 PostgreSQL 官方仓库
- 更新系统包:sudo dnf update -y
- 安装/更新 PostgreSQL 官方 Yum 仓库(若尚未安装):
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- 如系统启用了模块流,且与 PostgreSQL 模块冲突,可禁用旧模块:sudo dnf -qy module disable postgresql
- 执行升级
- 直接升级已安装的 pgAdmin 包:sudo dnf update -y pgadmin4*
- 重启与验证
- 重启服务(包不同服务名可能不同,常见为 httpd 或 pgadmin4):
sudo systemctl restart httpd 或 sudo systemctl restart pgadmin4
- 验证版本:pgadmin4 --version 或访问 http://服务器IP:5050 登录确认。
三 DEB 系发行版 Ubuntu 20.04 22.04 24.04
- 更新索引并升级
- 更新索引:sudo apt update
- 升级 pgAdmin:sudo apt upgrade pgadmin4
- 如通过官方仓库安装
- 确保已添加 PostgreSQL 官方 APT 仓库与 GPG 公钥,然后执行升级:
- 导入公钥:wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.ASC | sudo apt-key add -
- 添加源(以系统代号为准,如 jammy、noble):
echo “deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main” | sudo tee /etc/apt/sources.list.d/pgdg.list
- 更新并升级:sudo apt update && sudo apt upgrade pgadmin4
- 重启与验证
- 如使用系统服务:sudo systemctl restart apache2 或 sudo systemctl restart pgadmin4
- 验证版本:pgadmin4 --version 或访问 http://服务器IP:5050。
四 容器与虚拟环境方式
- Docker
- 拉取新镜像并重建容器(示例):
- 拉取:docker pull dpage/pgadmin4:latest(或指定版本标签)
- 重建(注意挂载原有数据与配置卷,避免丢失):
docker stop pgadmin4 && docker rm pgadmin4
docker run --name pgadmin4 -p 5050:80 -v pgadmin4_data:/var/lib/pgadmin -e PGADMIN_DEFAULT_EMAIL=… -e PGADMIN_DEFAULT_PASSWORD=… -d dpage/pgadmin4:latest
- Python 虚拟环境 pip 安装
- 建议新建虚拟环境再升级,减少与系统包冲突:
- 创建并激活:python3 -m venv ~/venv/pgadmin4 && source ~/venv/pgadmin4/bin/activate
- 升级:pip install --upgrade pgadmin4
- 如首次部署需初始化:python ~/venv/pgadmin4/bin/pgadmin4 setup-web.py(按向导完成初始化)
- 验证:~/venv/pgadmin4/bin/pgadmin4 --version。
五 回滚与常见问题
- 回滚方案
- RPM/DEB:使用包管理器降级到旧版本(如 sudo dnf downgrade pgadmin4-<旧版本> 或 sudo apt install pgadmin4=<旧版本>),并恢复备份的数据与配置目录。
- Docker:切换到旧版本标签重建容器,挂载原有卷以保留数据。
- 虚拟环境:保留旧虚拟环境目录,必要时切回使用。
- 常见问题与排查
- 端口占用:sudo ss -tlnp | grep 5050,释放或调整端口后重启服务。
- SELinux/防火墙:RHEL 系检查 sudo getenforce(必要时 sudo setenforce 0 临时放行)、放行端口 sudo firewall-cmd --add-port=5050/tcp --permanent && sudo firewall-cmd --reload。
- 反向代理(Nginx):更新配置后执行 sudo nginx -t && sudo systemctl reload nginx。
- 服务名差异:不同发行版/安装包的服务名可能为 httpd、apache2 或 pgadmin4,请使用 systemctl list-units | grep pgadmin 确认后再重启。