Skip to main content

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 :

  1. arrêter les conteneurs ;
  2. conserver le nouvel emplacement pour analyse ;
  3. remettre dans .env l'ancien DB_DATA_LOCATION ;
  4. redémarrer l'ancienne instance ;
  5. 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/