天天看点

PostgreSQL数据版本升级14到15

作者:堕落之angel

背景

PostgreSQL数据版本升级14到15

在很早以前使用gitea来进行管理代码,使用的数据库是PostgreSQL 14,最近做项目突然想到我原来就有数据库,为了不给服务器增加压力,当时想着要不用同一个得了,然后看了下版本就14,果断选择进行升级到15,这也就有了后面的故事。

环境

Docker 24.0.4 (必须要,版本可以不一样)

docker中运行的容器:postgres:14.5(之前运行的容器)

docker中运行的容器:tianon/postgres-upgrad:14-to-15(升级使用)

docker中运行的容器:postgres:15.3(升级后运行的容器)

操作

PostgreSQL数据版本升级14到15
# 先将原来的容器停掉
docker stop postgres

#  先备份下原来数据,以防出错了数据至少不损坏
cp pgdata pgdataback
 
# 修改文件夹名称(这个不操作也行,这里为了操作的时候更加直观一点)
mv pgdata pgdata14

# 创建升级后数据存放的文件夹
mkdir pgdata15

# 进行升级
docker run --rm -v /root/postgres/pgdata14:/var/lib/postgresql/14/data -v /root/postgres/pgdata15:/var/lib/postgresql/15/data tianon/postgres-upgrade:14-to-15

# 运行新的postgres15.3
docker run -d --name=postgres --restart=always -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e PGDATA=./pgdata15 -v /root/postgres:/var/lib/postgresql/data postgres:15.3           

到这里,升级就完成了。

当中也遇到一些小坑,如果运行升级后,没有显示升级成功的话,可能是文件夹的权限有问题。

如果升级成功了,但是连不上数据库,可能是hba的原因,需要在配置中加上对应ip(尽量不要0.0.0.0/0都放开),来开放外网使用。

PostgreSQL数据版本升级14到15

继续阅读