前几天看到新闻说postgres大版本升级出来了,当时就在想着我这边怎么升级。然后昨天突然mastodon不能使用,仔细一看是我设置的docker镜像自动升级,然后数据库的大版本升级需要手动导出再导入,不然会不兼容。然后昨天懒得整就干脆把镜像降级回了14,继续凑合着用。

今天是周日没啥事,于是早上起来折腾了一下,其中因为不熟练也搞错了好几步。

首先是导出,没啥问题,一个命令就解决了。

docker exec --user {镜像的postgres用户} {postgres镜像名称} pg_dumpall > backup.dump

然后问题就来了,首先我没有停止其他容器,然后导致数据库升级之后新建了一些表,在导入的时候就产生冲突了。

然后我把其他的容器停掉,删除刚刚产生的数据库文件,结果明明我删除的是子目录,但是因为不熟悉就尝试了rm的排除语法,结果不知道哪里出问题了,把父级目录也删除了一部分。。。惨!

还好我做之前备份了一下,然后重新把本地备份的上传上去。然后我再单独运行数据库容器,导入之前导出的数据库。

 docker exec --user {镜像的postgres用户} {postgres镜像名称} psql -f {之前导出的数据库文件} {导入的数据库}

虽然数据库基本升级完成了,但是发现mastodon的有些文件明明存在,但是网站上不能显示,于是看了一下,是目录权限的问题,于是更改一下权限就好了。

chmod 755 -R {对应目录}

虽然即使这样后面还是存在一些问题,mastodon的列表似乎有了点问题,但是终究是凑合着能用了,而且也懒得折腾了,感觉自己毕业之后,每天上班都没啥心思和精力折腾这些东西了。。。更别说自己下班之后为了将来的发展学点什么东西了。

真的不想就这样过一辈子,但是如果强迫自己做出改变,又确实挺累的。。。