chore: upgrade to 1.7.0+v2.7.5 #2
Reference in New Issue
Block a user
No description provided.
Delete Branch "upgrade-1.7.0+v2.7.5"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
immich → 1.7.0+v2.7.5 (latest immich + working VectorChord backup/restore)
Brings the recipe fully current and adds a working postgres backup/restore for immich's VectorChord DB.
Images — verified via the box-item-4 direct upstream check
abra cannot survey this recipe (
FATA … Docker references with both a tag and digest are currently not supportedon the digest-pinneddatabaseimage), so versions were checked directly against immich upstream + the live ghcr registry:v2.7.5(latest, 2026-04-13)v2.7.514-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357…(held)9@sha256:3b55…immich-server is already at the latest release. The digest-pinned
databaseimage is held at14-vectorchord0.4.3-pgvectors0.2.0because immich v2.7.5's owndocker/docker-compose.ymlpins exactly that tag+digest — confirmed against the live ghcr manifest (the tag resolves tosha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23, identical to the recipe). Newerghcr.io/immich-app/postgrestags exist (pg-15/16/17, vectorchord0.5.x, pgvectors0.3.0) but moving ahead of what immich-server ships would force a pg-major data migration + an unsupported extension combo, so the conservative, compatibility-checked pin is the current one (not blindly the highest).Backup/restore fix (the substance of this PR)
Adds the backupbot DB dump/restore hook (
pg_backup.sh, wired via thedatabasedeploy labels + a versioned config +PG_BACKUP_VERSIONinabra.sh). Two things made the immich DB hard to restore — both are handled:search_path. A plainpg_dumpof this DB emitsSELECT pg_catalog.set_config('search_path', '', false);. Reimporting that as-is leaves thevector/vchordtypes + operator classes unresolvable. Restore rewrites it to…'search_path', 'public, pg_catalog', true…before the import — immich's own documented restore procedure (docs.immich.app/administration/backup-and-restore).ON_ERROR_STOPaborts our transaction — the import rolls back and nothing is restored, while the app finishes its own migration and looks "healthy" on an empty DB (this is exactly what the earlierci/pg-backupattempt hit — backup green, restore lost the seeded marker). A one-shotpg_terminate_backenddoes not prevent the reconnect. So, like the green matrix-synapse hook, restore replacespg_hba.confwith a local-trust-only policy and reloads — postgres then rejects every TCP connection, locking the app out for the duration of the restore — then restorespg_hbavia anEXITtrap once the import is done. Our ownpsql/createdbuse the local socket, so they're unaffected.Verified live on the cc-ci server: deploy → backup → drop the marker table → restore, run 4× back-to-back — the marker + value return every time, all 61 immich tables + the
vector/vchordextensions restore cleanly,pg_hba.confis restored to baseline, and the app reconnects and serves200.Supersedes #1 (
ci/pg-backup, the original broken backup attempt) — left open for the operator to close.!testme
🌻 cc-ci —
immich@f89f82be❌ failurefull logs · dashboard
!testme
🌻 cc-ci —
immich@f89f82be❌ failurefull logs · dashboard
!testme
🌻 cc-ci —
immich@57944be6❌ failurefull logs · dashboard
57944be67ato6c6607dd496c6607dd49to9d5c5d40a0!testme
🌻 cc-ci —
immich@9d5c5d40❌ failurefull logs · dashboard
9d5c5d40a0to393bfa6fc8!testme
🌻 cc-ci —
immich@393bfa6f❌ failurefull logs · dashboard
393bfa6fc8toa92b28d9ba!testme
🌻 cc-ci —
immich@a92b28d9❌ failurefull logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9❌ killed → https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/232(summary card unavailable — see the run for details.) full logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9❌ failurefull logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9❌ killed → https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/241(summary card unavailable — see the run for details.) full logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9✅ passedfull logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9❌ killed → https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/267(summary card unavailable — see the run for details.) full logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9❌ failurefull logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9✅ passedfull logs · dashboard
!testme
!testme
🌻 cc-ci —
immich@a92b28d9❌ failurefull logs · dashboard
🌻 cc-ci —
immich@a92b28d9❌ failure → https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/281(summary card unavailable — see the run for details.) full logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9✅ passedfull logs · dashboard
!testme
!testme
🌻 cc-ci —
immich@a92b28d9✅ passedfull logs · dashboard
🌻 cc-ci —
immich@a92b28d9✅ passedfull logs · dashboard
!testme
🌻 cc-ci —
immich@a92b28d9❌ killed → https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/295(summary card unavailable — see the run for details.) full logs · dashboard
a92b28d9bato107d7220ad!testme
🌻 cc-ci —
immich@107d7220✅ passedfull logs · dashboard
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.