10.2 - Restauration PostgreSQL en ligne de commande
La restauration en ligne de commande est réservée aux cas avancés. Utiliser un nouvel emplacement PostgreSQL vide au lieu de supprimer immédiatement l'ancien.
Préparer un nouvel emplacement
Arrêter l'instance :
cd /srv/immich/app
docker compose down
Dans .env, pointer temporairement vers un nouveau dossier vide et explicite :
DB_DATA_LOCATION=/srv/immich/postgres-restore-2026-08-07
Créer les conteneurs sans lancer le serveur :
docker compose pull
docker compose create
docker start immich_postgres
Adapter le nom du conteneur PostgreSQL.
Vérifier PostgreSQL
docker exec immich_postgres pg_isready -U postgres -d immich
Restaurer le dump
gunzip --stdout /srv/backups/immich/dump.sql.gz \
| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
| docker exec -i immich_postgres \
psql --dbname=immich --username=postgres \
--single-transaction --set ON_ERROR_STOP=on
Cette commande suit le principe documenté par Immich. Adapter les valeurs sans ajouter le mot de passe dans la ligne de commande.
Démarrer Immich
docker compose up -d
docker compose logs -f immich-server
Si le serveur démarre trop tôt
Dans certains déploiements, utiliser temporairement :
DB_SKIP_MIGRATIONS=true
Restaurer la base, retirer la variable puis recréer les conteneurs. Ne pas laisser cette variable active.
Revenir sans destruction
Si la restauration échoue :
- arrêter les conteneurs ;
- conserver le nouvel emplacement pour analyse ;
- remettre dans
.envl'ancienDB_DATA_LOCATION; - redémarrer l'ancienne instance ;
- ne pas mélanger les deux bases.
TrueNAS
L'application TrueNAS rend difficile le démarrage isolé de PostgreSQL. Préférer l'interface de restauration. Pour une intervention manuelle, effectuer d'abord snapshots et dump, puis suivre les instructions correspondant exactement à la version du catalogue.
Référence : https://docs.immich.app/administration/backup-and-restore/
No comments to display
No comments to display