自动化升级迁移
我当前已经使用更简单的方式进行升级将 PostgreSQL 从 17 版本升级到了 18 , 直接使用自带的更新命令就可以了
请注意提前备份数据
bashsudo apt update
sudo apt upgrade
- 此时会提示是否升级数据库集群(会有2次), 如果需要升级就选择 YES , 大约 3 分钟即可完成升级(取决于数据库数量和机器配置). 即可自动完成升级并迁移数据.
- 同时会自动保留老版本和新版本的数据库并启动新的数据库, 使用
pg_lsclusters命令即可查看

传统稳健的方式
最近 PostgreSQL 发布了 17 的正式版本,作为一个狂热的新版本追随者当然需要更新到最新版本,以下是我将 Postgres 16 升级到 17 版本并完成数据迁移的过程记录
创建新版数据库
- 我的数据库主要使用 docker 启动,docker compose 脚本如下:
yamlversion: '3.8'
services:
# 旧版本数库
postgres16:
container_name: postgres16
image: postgres:16-alpine
volumes:
- /data/postgre16:/var/lib/postgresql/data
ports:
- '5432:5432'
environment:
- POSTGRES_PASSWORD=xxxxxx
- POSTGRES_DB=example
restart: always
networks:
- pgsql
# 新版本数库,端口号可以随意指定,在数据完成迁移后将会使用默认的 5432 端口
postgres17:
container_name: postgres17
image: postgres:17-alpine
volumes:
-
