Actualización de PostgreSQL 18 para autoalojamiento

El script de actualización verificará el espacio libre y solo procederá si es seguro hacerlo.

Hay dos pasos durante el proceso en los que el espacio en disco puede ser crítico. Si omitieras la comprobación de espacio libre, aquí es donde podrías encontrarte con problemas:

  1. Al ejecutar pg_dump para extraer los datos de la base de datos antigua (se requiere el doble de almacenamiento de la BD en este punto).
  2. Al ejecutar pg_restore para insertar los datos nuevamente en la nueva base de datos (se requiere el triple de almacenamiento de la BD en este punto).

Para recuperarte de este estado, necesitarías eliminar /shared/postgres_dump y /shared/postgres_data_new.

Ten en cuenta que, al final de la actualización, eliminamos los archivos temporales de pg_dump, pero conservamos los datos de tu base de datos anteriores a la actualización en /shared/postgres_data_old por si acaso. Una vez que estés satisfecho con que todo funcione correctamente, probablemente quieras eliminar ese directorio para recuperar espacio en disco.

He probado hacer una copia de seguridad de Discourse en un sitio con PG15 y restaurarla en un sitio con PG18. Funcionó para mí, pero ten en cuenta que no es un método oficialmente soportado. ¡Prueba a fondo primero en un entorno no productivo y asegúrate de tener un plan de retroceso!

Recomendaría estudiar el proceso utilizado por el script de actualización. Si tienes requisitos especiales de almacenamiento, deberías poder adaptarlo a tus necesidades. De nuevo, prueba primero:

Esto ya está implementado en discourse_docker, sí. Si ejecutas pull en la rama main o ejecutas ./launcher rebuild app, lo obtendrás.

Desconectar discourse_docker de la rama main ayudará a prevenir actualizaciones accidentales si deseas posponerla.

3 Me gusta