- cross-posted to:
- selfhost@lemmy.ml
- selfhosted@lemmy.ml
- cross-posted to:
- selfhost@lemmy.ml
- selfhosted@lemmy.ml
Hot take? This should have been a major version update.
Disclaimer ⚠️ The project is under very active development. ⚠️ Expect bugs and breaking changes. ⚠️ Do not use the app as the only way to store your photos and videos. ⚠️ Always follow 3-2-1 backup plan for your precious photos and videos!
Yes project does not follow semantic versioning. But you can consider it it the 0.y.z state where it is even in the semantic versioning allowed to have breaking changes without major version increase.
I’m using the Immich app from TrueNAS, how do I properly update it? Or is it being taken care off by TrueNAS?
Edit: I asked on the TrueNAS discord for help and someone who already updated their Immich figured out how to fix the installation afterwards. I copy&paste the guide here:
This guide assumes that Heavyscript is installed and pgAdmin.
https://github.com/Heavybullets8/heavy_script
https://truecharts.org/charts/stable/pgadmin/-
Upgrade Immich to v.1.95.1.
-
If Immich fails to deploy check the logs
heavyscript pod --logs immich
. If the logs complain that indexes need to be deleted continue with this guide. -
Access the shell for the postgres pod
heavyscript pod -s immich
. -
Select the
postgres
pod. -
Inside the pod run
env
and record the password. Then typeexit
to exit the pod. -
Get the DNS address and port for Immich postgres pod.
heavyscript dns -a
-
Launch pgAdmin and right-click on
Servers
selectRegister > Server
. -
In the
Connection
tab put the hostname and port from step 6. The username is immich and use the password from step 3. -
Once connected create a backup by expanding
Servers > Immich > Databases
and right-click onimmich
then selectBackup...
. Follow the prompts to create a backup. -
Right-click on
immich
and selectQuery Tool
. -
Use the following query to delete your indexes.
FROM pg_index X JOIN pg_class I ON I.oid = X.indexrelid JOIN pg_am A ON A.oid = I.relam WHERE A.amname = 'vectors';
-
Stop Immich with heavyscript
heavyscript app --stop immich
. -
Once all pods have scaled down start Immich
heavyscript app --start immich
.
The SQL query will complain about a syntax error but it will work regardless. It just takes some time to redeploy immich.
Credit goes to @verbalsiegeengine on Discord
-
Good share. I saw the nudge in the mobile app, but I didn’t realize there was breaking changes and upgraded in the middle of the night before bed (what the hell was I thinking???). Spent a good extra hour trying to figure out why.
Key take away, the
pgvecto.rs
version needs to be upgraded. If you are using docker, update the docker-compose.yml. If you’re not, upgrade yourpgvector.rs
version first. 🙏I don’t understand. Why are they so specific in the Docker Compose? Why not just have a Docker that pulls the latest of each package without requiring the user to copy long strings?
For the exact reason they are posting this. What if some service you are referencing has breaking changes? If you pinpoint the exact version it will have no effect to your project unless you decide (hopefully after some consideration) to upgrade the service version number.
Sorry, I think I’m asking my question poorly, what I mean is instead of
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
Which clearly requires user interaction, why not take that out of users’ hands and just have
image: tensorchord/pgvecto-rs:latest-stable
Which is effectively what they’re using anyway? I can understand freezing on a version when the upstream removes a feature, but that’s not happened and even so, why do they need the SHA verification? Sorry if it seems stupid and straight forward, this is the only container I host that does this and so I’m trying to understand it rather than just feel aggrieved by it.
Also, it’s best practise to specifically refer to the digest for containers to avoid re-tags resulting in different images. For folks who audit what runs on their infrastructure, digests are the standard way of referring to an image. For Immich, I’d presume that the digest is partially a security thing and partially a “this specific image is known to be working”.
Thanks for posted. I didnt even notice. I just blindly did a pull. Lesson learned.
You can always set watchtower to blindly pull for you. If it’s going to be broken anyways, might as well automate the process.
*pro tip