天天看點

PostgreSQL資料版本更新14到15

背景

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

繼續閱讀