数据库postgresql升级到17
自从把 msyql 改为了 postgresql 也有一段时间了,目前个人项目都是在用 postgresql16,17 也发布又一段时间了,最近晚上突然想到一个关于 go 事务的控制好方法,就为自己的框架 gowk 趁夜深人静时增加了事务控制,顺便也把 postgresql16 升级到了 17。
先用的是 16,小版本升级,直接更新就行,重新构建镜像 iautre/postgres,更改版本重启 docker-compose 就行了,但是更新到 17 版本,就不能直接升级了,还需要升级数据
官方的升级数据方案是 pg_upgrade,对于大量数据效率更好,不过需要用到旧版本的 bin,略显麻烦,对于个人项目数据量不大,直接备份再恢复更快捷,而且使用的 docker-compose 部署的,配置参数都都是现成的,不同更改。
旧容器备份
1docker exec -it postgres /usr/local/bin/pg_dumpall -c -U postgres -f /var/lib/postgresql/backup/all_db_dump_`date +"%Y-%m-%d_%H-%M_%S"`.sql
更换新容器后恢复
1docker exec -it postgres psql -U postgres -f /var/lib/postgresql/backup/all_db_dump_2024-10-31_11-29_41.sql
恢复后,新容器正常服务了。
关注 “AUTRE” 微信公众号,给我留言