Recharger un dump
Cette copie sert à remettre une machine sur pied : toute la base, tous les lecteurs, dans un volume vide. Le fichier d’un seul lecteur se restaure, lui, depuis l’interface, comme l’explique Restaurer un export.
Les commandes
Section intitulée « Les commandes »export PGPASSWORD=$(grep -m1 '^POSTGRES_PASSWORD=' .env | cut -d= -f2-)docker compose downdocker volume rm badlen_pgdatadocker compose up -d --wait dbdocker run --rm -i --network badlen_default -e PGPASSWORD postgres:18-alpine \ psql -h db -U badlen -d badlen -v ON_ERROR_STOP=1 < badlen-2026-08-01.sqldocker run --rm --network badlen_default -e PGPASSWORD postgres:18-alpine \ psql -h db -U badlen -d badlen -tAc \ 'select (select count(*) from "User"), (select count(*) from "Account"), (select count(*) from "Transaction")'docker compose up -d appLe rôle de chaque ligne
Section intitulée « Le rôle de chaque ligne »La première ligne est aussi celle par laquelle commençait le dump. Elle est répétée ici
parce qu’on restaure généralement dans un terminal ouvert longtemps après la sauvegarde, où
la variable que transmet -e PGPASSWORD n’existe pas. Vous obtenez alors
password authentication failed for user "badlen", qui fait penser à un mauvais mot de
passe dans .env, alors qu’il manque simplement l’export dans ce shell.
--wait est nécessaire parce que le volume que vous venez de supprimer contenait toutes
les données de la base : à ce démarrage, PostgreSQL recrée son cluster de zéro, ce qui
prend une dizaine de secondes pendant lesquelles le conteneur tourne mais le serveur
n’écoute pas encore. Sans cette option, up -d vous rend la main dès que le conteneur
existe, et psql se heurte à Connection refused.
ON_ERROR_STOP=1 est tout aussi nécessaire : sans lui, psql affiche chaque erreur mais
se termine quand même avec le code 0, et une restauration qui a échoué en cours de route a
l’air réussie.
Le décompte joue pour la restauration le rôle de la marque de fin pour le dump, et il se fait avant de démarrer l’application, pas après : lecteurs, comptes, opérations. Trois zéros, ou une erreur signalant une relation inexistante, signifient que rien n’a été restauré. Si vous démarrez l’application sur une base vide, elle applique les migrations et affiche une page d’inscription, exactement comme lors d’une première installation.
Si l’instance a une autre clé
Section intitulée « Si l’instance a une autre clé »Si l’instance dans laquelle vous restaurez utilise une autre SECRET_ENCRYPTION_KEY,
lisez Restaurer sous une autre clé avant de vous
connecter : deux informations reviennent illisibles, dont l’une vous sert justement à
vous connecter.