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 17

Ce 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

  1. 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 -d
  2. Pour passer à la nouvelle version : export (pg_dumpall) avec l'ancienne, nouveau dossier de données vide, import avec la nouvelle. Ne fixez jamais postgres:latest : indiquez toujours la version majeure.

Pour aller plus loin

Vous avez d'autres messages dans vos logs ?

Collez-les dans le décodeur : il reconnaît les erreurs connues et vous dit lesquelles sont graves. Tout reste dans votre navigateur.

Analyser mes logs