Infinite loop during postgres upgrade

Me encontré con este problema durante la última actualización de PostgreSQL de la versión 13 a la 15.

En nuestro despliegue, nuestro directorio /shared/postgres_data está montado en un dispositivo de almacenamiento NVMe más rápido, por lo que moverlo falló con un mensaje de error de Device or resource busy.

Solucionamos esto modificando la plantilla de postgres de la siguiente manera:

diff --git a/templates/postgres.template.yml b/templates/postgres.template.yml
index c24bfe6..03813c4 100644
--- a/templates/postgres.template.yml
+++ b/templates/postgres.template.yml
@@ -139,8 +139,10 @@ run:
           fi

-         mv /shared/postgres_data /shared/postgres_data_old
-         mv /shared/postgres_data_new /shared/postgres_data
+         mkdir /shared/postgres_data_old
+         mv /shared/postgres_data/* /shared/postgres_data_old
+         mv /shared/postgres_data_new/* /shared/postgres_data
+         rmdir /shared/postgres_data_new

En lugar de intentar manipular el directorio en sí, simplemente movemos los contenidos.

Por favor, consideren integrar este cambio para mejorar la fiabilidad de las actualizaciones de la base de datos.

1 me gusta