Files
photoanalyzer/docs/stages/archive.md
domverse f1442527a2
Some checks failed
Test / suites (push) Failing after 2m56s
Test / container (push) Failing after 5m27s
US09-04: Write the User Manual with Generated Screenshots (#110)
2026-08-23 23:37:31 +02:00

2.0 KiB

Archive

← Documentation index · Guided first pass

Archive locations and plans

What it is for. Moving a finished album out of active storage onto another disk, while keeping everything the library knows about it.

What you decide. Which album, which destination, and whether to accept the reclaimed space in exchange for needing that medium mounted to see the originals again.

What it changes. Files are copied to the archive location, verified there, and only then removed from the library. The asset keeps its id, its hashes, its decisions, its analysis, its upload history, and a durable preview thumbnail; current_path becomes null and availability becomes archived_online or archived_offline.

What it refuses. Preflight blocks on: an unverified upload, a checksum that no longer matches the uploaded bytes, an unmounted or unwritable destination, insufficient free space plus the configured reserve, a destination that already holds unexpected paths, a missing durable thumbnail, and any conflicting job. The source is never removed before the archived copy is verified — not because Immich reported success, which is an ingest, not a backup.

Offline is not missing

An archived photo whose medium is unplugged is archived_offline. It still appears in search, still participates in duplicate detection through its retained hashes and thumbnail, and is never reported as lost. If a full-resolution comparison is needed, the application asks you to mount the named medium rather than guessing.

Restore

Restore is planned and journaled like everything else: the medium must be online, the bytes are copied back and verified into a collision-free destination, a new active path is registered, and a reconciliation scan follows. Existing safety, analysis, EXIF, and upload state stay valid when hashes match — and when they do not, the result is a visible divergent state rather than silent acceptance of a different file.

Next: diagnostics.