Échecs des sauvegardes avec une base de données Postgres 16 (et toutes celles >13)

Salut à tous, j’ai rencontré ce problème aujourd’hui. Le symptôme était que nous recevions des alertes depuis environ 6 jours indiquant que les sauvegardes échouaient, et les lignes de log clés semblaient être :

[2025-06-14 03:30:20] pg_dump: error: aborting because of server version mismatch
[2025-06-14 03:30:20] pg_dump: detail: server version: 16.9; pg_dump version: 15.12 (Debian 15.12-1.pgdg120+1)

J’utilise Discourse sur Ubuntu installé via le guide d’installation recommandé sur un droplet Digital Ocean. Mais j’utilise la base de données PostgreSQL gérée de Digital Ocean plutôt qu’un conteneur PostgreSQL. En regardant ma base de données, elle fonctionne avec pg 16. Je ne pense pas qu’ils l’aient mise à jour récemment (et je ne m’attendrais pas à ce qu’une mise à niveau de version majeure soit automatique de toute façon), mais j’ai contacté leur support pour vérifier.

Quoi qu’il en soit, mes recherches m’ont mené à cette page. Je n’étais pas sûr où placer le YAML que @pfaffman a posté, alors j’ai exécuté les commandes manuellement, et j’ai pensé partager pour quiconque tomberait sur ce problème :

  • cd /var/discourse
  • launcher enter app
  • apt list --installed | grep postgres # pour confirmer que la version actuellement installée est 15
  • apt-get update
  • apt-get remove postgresql-client-15
  • apt-get install postgresql-client-16

J’ai ensuite déclenché une sauvegarde manuelle sur la page d’administration des sauvegardes.

Cela semble avoir temporairement résolu le problème, mais comme l’a souligné @pfaffman, je m’attends à ce que la prochaine fois que je mettrai à niveau Discourse, il revienne à postgresql-client-15, et les sauvegardes cesseront de fonctionner à nouveau, nécessitant l’intervention manuelle ci-dessus.

Existe-t-il une solution à ce problème autre que de devoir répéter ces étapes à chaque mise à niveau de Discourse ?