Bases de données
PostgreSQL : « database files are incompatible with server »
Grave Quelque chose ne fonctionne pas : à traiter maintenant.
Le message tel qu'il apparaît dans les logs :
FATAL: database files are incompatible with server. DETAIL: The data directory was initialized by PostgreSQL version 16, which is not compatible with this version 17Ce que ça veut dire
L'image PostgreSQL est passée à une nouvelle version majeure (16 → 17), mais les données ont été créées par l'ancienne. PostgreSQL refuse de démarrer pour ne pas les abîmer.
Pourquoi ça arrive
- Image
postgres:latest, ou changement de version à la main dans le compose.yml.
Comment corriger
Remettez immédiatement l'ancienne version dans le compose.yml (ici
postgres:16-alpine) et relancez : tout refonctionne, rien n'est perdu.sudo docker compose up -dPour passer à la nouvelle version : export (
pg_dumpall) avec l'ancienne, nouveau dossier de données vide, import avec la nouvelle. Ne fixez jamaispostgres:latest: indiquez toujours la version majeure.