Ho appena effettuato l’aggiornamento a PostgreSQL 18 sia per un’installazione standard che per una configurazione a doppio contenitore senza alcun problema. Grazie ancora a @chrisr e al team per le istruzioni semplici e chiare.
Per una configurazione a doppio contenitore dietro Cloudflare CDN con bucket di upload/backup R2, i passaggi che ho seguito sono stati i seguenti:
Passaggio 1: pulizia del disco
# elimina tutti i dati Docker non utilizzati
docker system prune -a -f
# pulisce i vecchi log e la cache di apt
journalctl --vacuum-time=2d
apt-get clean
apt-get autoremove -y
# controlla le dimensioni del database
du -sh /var/discourse/shared/data/postgres_data
# controlla lo spazio libero disponibile
df -h -x tmpfs -x devtmpfs
Passaggio 2: manutenzione e backup
- modifica una pagina di manutenzione di Cloudflare per indicare un aggiornamento di manutenzione del sistema di 15-20 minuti e imposta un timer di ricaricamento (potrebbe non volerci così tanto tempo, ma è meglio essere prudenti!). Attiva una route del worker di Cloudflare per mostrare la pagina di manutenzione.
- avvia un backup da riga di comando:
cd /var/discourse
./launcher enter web_only
discourse backup
exit
- accedi alla dashboard di Cloudflare R2 e controlla la cartella dei backup per confermare che il file di backup sia stato caricato con successo
Passaggio 3: arresto sicuro
- ferma prima il contenitore web per chiudere tutte le connessioni attive, quindi ferma il contenitore del database:
cd /var/discourse
./launcher stop web_only
./launcher stop data
- verifica che PostgreSQL si sia arrestato correttamente:
tail -n 20 shared/data/log/var-log/postgres/current
Passaggio 4: rebuild dell’aggiornamento
esegui i seguenti comandi in questo ordine:
./launcher rebuild data # esporta, migra e ripristina PostgreSQL 18
./launcher rebuild data # rebuild del contenitore del database
./launcher rebuild web_only # rebuild dell'applicazione web
Passaggio 5: ottimizzazione e pulizia
- genera le statistiche mancanti delle tabelle pg18, altrimenti il forum sarà più lento del normale:
docker exec -u postgres data /usr/lib/postgresql/18/bin/vacuumdb -d discourse --analyze-in-stages
- testa il forum per assicurarti che tutto funzioni correttamente - la pagina di manutenzione non dovrebbe più essere visualizzata se hai impostato un timer di ricaricamento.
- rimuovi la route del worker di Cloudflare alla pagina di manutenzione (non vogliamo raggiungere il limite giornaliero di 100.000 richieste!)
- elimina i vecchi dati pg18 per recuperare quello spazio su disco:
rm -fr /var/discourse/shared/data/postgres_data_old/
fatto!
![]()
