记录immich从v1.91.0升级到v1.95.0

2024-02-24 14:31:07 20点赞 124收藏 31评论
immichimmich

IMMICH是一款开源的图片/相册管理工具,相比于群晖Photos,其不依赖于某一个NAS品牌,可以自己在Win,Linux等搭建。

前提:我是使用OMV作为NAS系统,通过SMB共享文件。然后PVE单独开一个LXC机器,运行docker搭建immich

之前是年前折腾的,参考的站内的文章,用得也比较顺心,升级到了v1.91.0。年后(2月21日)查看app时,发现更新到了v1.95.0了,这次更新存在一个breaking changes,即PG数据库从v0.1.11升级到了v0.2.0.

详情请阅读官方文档:https://github.com/immich-app/immich/releases/tag/v1.95.0

IMMICH v1.95.0 - breaking changesIMMICH v1.95.0 - breaking changes

既然存在breaking changes,则需要对docker compose进行一定修改,我在过程中遇到一定问题,特此记录下来。

第一次升级

升级前版本是v1.91.0,我是打算直接升级到v1.95.0

我的docker compose中都是指定的release版本, 本来想贴配置的,才发现ZDM上面这个编辑器,不支持markdown的代码格式。我就贴个图吧,这个yaml文件可以在immich的官方github仓库下载(https://github.com/immich-app/immich/releases/download/v1.95.0/docker-compose.yml)到,自己根据需要修改即可

配置文件配置文件

于是我将数据库修改为v0.2.0,然后按照官方文档操作

记录immich从v1.91.0升级到v1.95.0
  1. 修改docker-compose.yml

  2. 备份数据库:docker exec -t immich_postgres pg_dumpall -c -U postgres | gzip > "/path/to/backup/dump.sql.gz"

  3. 暂停容器:docker compose down

  4. 拉取更新:docker compose pull

  5. 启动: docker compose up

然后我发现,有报错(忘记截图),由pg容器报错,提示找不到facial等信息,也提示没有vector用户,版本为0.1.11,而不是0.2.0。 此时能打开网页,但无法打开缩略图,点击Explorer和MAP会直接出现500服务器错误,还好之前有进行备份(备份是个好习惯,我有设置脚本,每周备份)。

记录immich从v1.91.0升级到v1.95.0

事后我大致总结了一下问题所在,这里直接贴出:

① 我的缩略图和人脸识别等信息在过年期间已丢失,但在升级前我没注意,升级后自然会出现无法点开图片的问题。

② 直接从v1.91.0升级到v1.95.0,出现了不兼容问题,猜测中间某个版本的server有修复。但时间有限,我没有一个个仔细去看各个版本的change log,此处仅为猜测。

由此我打算还原备份,进行第二次升级。

第二次升级

参考官方还原数据的文档:https://immich.app/docs/administration/backup-and-restore/

但官方的文档中有个坑,其实在还原前,需要先删除掉原数据库下所有内容。

  1. 关闭容器: docker compose down -v

  2. 删除原有数据库内容:rm -rf ./pgdata/* (此步骤谨慎,会删除你的数据库,除非你有备份,不要轻易操作此步骤,谨慎点就将原文件夹mv改名,然后新建一个pgdata文件夹)

  3. 修改yaml文件,将immich-server,immich-microservices,immich-machine-learning 的版本修改为v1.91.0

  4. 然后拉取:docker compose pull

  5. 创建容器(是创建,不是启动):docker compose create

  6. 启动数据库容器:docker start immich_postgres

  7. 还原数据库:gunzip < "/path/to/backup/dump.sql.gz" | docker exec -i immich_postgres psql -U postgres -d immich

  8. 重新启动所有容器:docker compose up -d

此时就回到了v1.91.0版本,数据也是停留在上周的状态。此时我的略缩图等信息,还是没有的。

后续步骤

我先升级到v1.92.0,此时只需要修改yaml文件中immich-server,immich-microservices,immich-machine-learning等容器版本即可,不需要修改数据库版本,然后docker compose down,pull,up。

因为略缩图等信息消失,此时登入网页后台,进入JOBS,启动 GENERATE THUMBNAILS,EXTRACT METADATA,FACIAL RECOGNITION等任务。

记录immich从v1.91.0升级到v1.95.0

等待任务完成后,再将IMMICH升级到v1.94.0,然后再升级到v1.95.0,此时IMMICH运行正常。

记录immich从v1.91.0升级到v1.95.0

最后记得把APP也升级到最新版本:https://github.com/immich-app/immich/releases/download/v1.95.0/app-arm64-v8a-release.apk

展开 收起
31评论

  • 精彩
  • 最新
  • 你这还算好的了,我用的NAS系统是UNAS,基于debian9的,最新的docker只到19版本。目前能用的最后一个版本是v1.90.2,升到1.91.0(从该版本去掉typesense容器并把数据库改为带插件的gvecto-rs版本)就已经不行了。把报错信息拿到issue里一搜索,很多人出现这个问题,说是docker的版本过低,至少需要20,自此我就只能停留在老版本了。

    校验提示文案

    提交
  • 出问题了吧~

    校验提示文案

    提交
    是出了问题,折腾一番,目前又可用了 [惊喜]

    校验提示文案

    提交
    是的

    校验提示文案

    提交
    收起所有回复
  • arm的跑PVE?

    校验提示文案

    提交
    哦,是客户端

    校验提示文案

    提交
    PVE是在x86小主机上,omv也是在PVE下,all in boom [高兴]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 求一个最新版本的镜像🙏🙏🙏

    校验提示文案

    提交
    这个官方拉取即可,如果连不到github的docker镜像(ghcr.io),可以修改为南京大学的ghcr源

    校验提示文案

    提交
    收起所有回复
  • 这位朋友为了等到你这篇, 我真的搜了好久..我现在是1.94版本, 服务器刚升级到1.97.之前的升级玩坏了,导致我全部重来,您有什么办法能稳定升级吗,我是在QNAP的NAS上用Contact Station安装的immich

    校验提示文案

    提交
    这个没有什么稳定升级的,immich的官方也说了是激进更新,不要将其作为唯一的照片备份工具,还是多备份,再升级吧

    校验提示文案

    提交
    收起所有回复
  • 有点坑 无脑升了打不开了 还好照片已备份

    校验提示文案

    提交
    还是多备份吧 [惊喜]

    校验提示文案

    提交
    收起所有回复
  • 安装时出现错误,提示 Error response from daemon: Get "去看看": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    有没有人遇见过?(已经附魔了)

    校验提示文案

    提交
    这个是网络问题,连不上dockerhub,换个Registry

    校验提示文案

    提交
    收起所有回复
  • 真是坑。已经被我升级坏了,又要重新上传。什么破玩意

    校验提示文案

    提交
  • pg数据库有单独的volume,我直接运行重拉镜像没什么问题

    校验提示文案

    提交
  • 升级也需要先下载yaml配置文件再升级,否则就是各种报错

    校验提示文案

    提交
  • 感觉像是新安装啊

    校验提示文案

    提交
  • 这程序小日子写的?

    校验提示文案

    提交
    不是 作者比较喜欢日本文化

    校验提示文案

    提交
    收起所有回复
  • 请教楼主一个问题,刀客里的容器有了新版本,除了删除重新创建,有没有无损覆盖式的更新方式?比如docker update jellyfin类似的命令,实在不想重新配置一遍,而且有的容器应用已经产生了用户数据,重装实在难搞

    校验提示文案

    提交
    Docker的初衷之一就是防止版本更新导致程序不可用,所以要么找长期支持版本,要么就自己重装

    校验提示文案

    提交
    谢科普君~这个初衷太棒了,我还是老老实实继续老版本吧,又不是不能用 [惊喜]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我在用photoprism,值得尝试下吗

    校验提示文案

    提交
  • 感觉越来越复杂了

    校验提示文案

    提交
  • 这怎么样,好吗

    校验提示文案

    提交
  • cswei

    作者
    update:20240311,已无痛升级到1.98.0

    校验提示文案

    提交
  • immich 这货最近基本上只要是一更新,就登录不上。 [皱眉]
    太折腾了。过段时间考虑换掉

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
124
扫一下,分享更方便,购买更轻松