I backup falliscono con database Postgres 16 (e tutte le versioni PG > 13)

Ciao a tutti, oggi mi sono imbattuto in questo problema. Il sintomo era che ricevevamo avvisi da circa 6 giorni che i backup stavano fallendo, e le righe di log chiave sembravano essere:

[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)

Eseguo Discourse su Ubuntu su un droplet Digital Ocean, utilizzando la guida di installazione consigliata. Ma utilizzo il database Managed Postgres di Digital Ocean anziché un container postgres. Guardando il mio database, sta eseguendo pg 16. Non penso che lo abbiano aggiornato di recente (e non mi aspetterei comunque un aggiornamento automatico di una versione principale), ma ho contattato la loro assistenza per verificare.

Comunque, la mia ricerca mi ha portato a questa pagina. Non ero sicuro di dove mettere lo YAML che @pfaffman aveva pubblicato, quindi ho eseguito i comandi manualmente e ho pensato di condividerli per chiunque altro si imbattesse in questo:

  • cd /var/discourse
  • launcher enter app
  • apt list --installed | grep postgres # per confermare che la versione attualmente installata sia la 15
  • apt-get update
  • apt-get remove postgresql-client-15
  • apt-get install postgresql-client-16

Ho quindi attivato un backup manuale nella pagina di amministrazione dei backup.

Questo sembra aver risolto temporaneamente il problema, ma come ha sottolineato @pfaffman, mi aspetto che la prossima volta che aggiornerò Discourse, tornerà a postgresql-client-15 e i backup smetteranno di funzionare di nuovo, richiedendo l’intervento manuale sopra descritto.

C’è una soluzione a questo problema oltre a dover ripetere questi passaggi ogni volta che aggiorno Discourse?