Lo script di aggiornamento controllerà lo spazio libero e procederà solo se è sicuro farlo.
Ci sono due fasi del processo in cui lo spazio su disco potrebbe diventare critico. Se dovessi ignorare il controllo dello spazio libero, è qui che potresti incontrare problemi:
- Durante l’esecuzione di
pg_dumpper estrarre i dati dal vecchio DB (a questo punto è necessario 2x lo spazio di archiviazione del DB). - Durante l’esecuzione di
pg_restoreper reinserire i dati nel nuovo DB (a questo punto è necessario 3x lo spazio di archiviazione del DB).
Per recuperare da questa situazione, dovresti rimuovere /shared/postgres_dump e /shared/postgres_data_new.
Nota che alla fine dell’aggiornamento rimuoviamo i file temporanei di pg_dump, ma manteniamo i dati del DB pre-aggiornamento in /shared/postgres_data_old solo per sicurezza. Una volta che sarai soddisfatto del fatto che tutto funzioni correttamente, probabilmente vorrai rimuovere quella directory per liberare spazio su disco.
Ho testato il backup di Discourse su un sito PG15 e il suo ripristino su un sito PG18. Ha funzionato per me, ma tieni presente che non è un metodo ufficialmente supportato. Testa accuratamente prima su un ambiente non di produzione e assicurati di avere una via di rollback!
Ti consiglio di studiare il processo utilizzato dallo script di aggiornamento. Se hai requisiti di archiviazione particolari, dovresti essere in grado di adattarlo alle tue esigenze. Ancora una volta, testa prima:
Questo è ora in discourse_docker, sì. Se fai pull di main o esegui ./launcher rebuild app, lo otterrai.
Disattivare discourse_docker dal ramo main aiuterà a prevenire aggiornamenti accidentali se desideri posticipare l’operazione.