PG Auto Upgrade – Docker (and K8s) container to auto upgrade your database
9 months ago
- #Database Upgrade
- #PostgreSQL
- #Docker
- PostgreSQL Docker镜像支持自动数据库升级
- 检测数据目录中的PostgreSQL版本并使用pg_upgrade的--link参数进行升级
- 升级完成后启动PostgreSQL服务,旧集群数据将被清除
- 官方Docker PostgreSQL镜像不具备升级功能
- 警告:使用前请备份数据,原地升级存在数据丢失风险
- 移除了健康检查,已实现自定义健康检查机制
- Docker Hub镜像地址:pgautoupgrade/pgautoupgrade
- 使用'latest'标签获取基于Alpine Linux的镜像,或特定版本标签如'17-alpine'
- 提供基于Debian的镜像(如'17-bookworm')以确保兼容性
- One Shot模式仅执行升级不运行PostgreSQL(设置PGAUTO_ONESHOT=yes)
- 通过PGAUTO_REINDEX=no跳过重建索引(推荐PG v16+版本使用)
- Bitnami Postgres适配方案:复制缺失的配置文件,处理用户ID变更
- 提供Kubernetes initContainer示例用于Bitnami升级场景
- 开发镜像构建命令:'make dev'
- Wiki文档包含自定义扩展的安装说明
- 设有'before'和'server'断点用于调试/测试
- 测试脚本验证从PG 9.5到17.x的AdventureWorks数据库升级流程