Actualizar PostgreSQL 13 a PostgreSQL 14

En este tutorial vamos actualizar PostgreSQL 13 a PostgreSQL 14 en un entorno Windows, aunque con el paso del tiempo, este artículo también ha sido verificado para actualizar versiones posteriores como actualizar de PostgreSQL 15 a PostgreSQL 16. Por desgracia no existe un actualizador como tal, si no que deberemos instalar la nueva versión y migrar lo antiguo a la nueva versión.

Instalar nueva versión de PostgreSQL

  1. Accede a la web oficial y descarga PostgreSQL en su versión más reciente para Windows.
  2. Ejecuta el fichero descargado y realiza la instalación. Es muy sencilla, solo debes elegir la ubicación, la contraseña del usuario postgres (asigna la misma contraseña que al usuario postgres de la versión que ya tienes instalada) y el puerto (en mi caso lo he instalado en un puerto distinto)
Actualizar PostgreSQL 13 a PostgreSQL 14

Parada de servicios

  1. Abre los servicios de Windows, puedes hacerlo buscando la palabra servicios en el buscador o desde el panel de control > herramientas administrativas
  2. Localiza los dos servicios de PostgreSQL y seleccionando de uno en uno, haz clic en el botón parar.

Otorgar permisos

Para asegurarte de que todo va funcionar sin problemas debes comprobar que la carpeta raiz de tus instalaciones de PostgreSQL tienen los suficientes permisos. Si lo has instalado por defecto la ruta será c:\Program Files\PostgreSQL.

  1. Ubicate en carpeta anterior de tu instalación de PostgreSQL. En mi caso C:\Program Files
  2. Haz clic derecho sobre la carpeta PostgreSQL y después en propiedades.
  3. Haz clic en la pestaña Seguridad y asígnale al grupo Usuarios control total sobre la carpeta pulsando en el botón editar.

En realidad, si otorgáis permisos a la carpeta C:\Program Files\PostgreSQL\{nVersion}\data debería ser suficiente.

Copia de los datos

En el siguiente paso vamos a copiar los datos de la versión antigua de PostgreSQL a la nueva versión. Antes de realizar este paso se puede crear un backup, aunque en este tutorial no lo vamos a realizar. Si en tu caso lo consideras necesario puedes utilizar los comandos pg_dump y pg_dumpall para realizarlo. Vamos a realizar la copia de los datos entre versiones:

  1. Abre una linea de comandos con permisos de administrador.
  2. Accede a la carpeta bin de la nueva versión.
CD C:\Program Files\PostgreSQL\14\bin
  1. Indica la contraseña del usuario postgres de ambas versiones (debe ser la misma)
SET PGPASSWORD=tuContraseña
  1. Lanza la copia de los datos.
pg_upgrade -d "c:\Program Files\PostgreSQL\13\data" -D "c:\Program Files\PostgreSQL\14\data" -b "c:\Program Files\PostgreSQL\13\bin" -p 5433 -B "c:\Program Files\PostgreSQL\14\bin" -U postgres -P 5434Lenguaje del código: JavaScript (javascript)

Ejemplo:

Parámetros de pg_upgrade

Como puedes observar en el paso anterior utilizamos una serie de parámetros del comando pg_upgrade que debes sustituir según tú instalación. Los parámetros utilizados y los disponibles aunque no los utilicemos son:

Parámetro Descripción
-ddirectorio de la carpeta data de la versión antigua
-Ddirectorio de la carpeta data de la nueva versión
-bdirectorio de la carpeta bin de la versión antigua
-Bdirectorio de la carpeta bin de la nueva versión
-ppuerto donde esta instalado la versión anterior
-Ppuerto donde esta instalado la nueva versión
-Unombre de usuario de la instalación
-csolo chequea el cluster, no cambia ningún dato
-jnúmero de procesos o subprocesos simultáneos a utilizar
-kusar enlaces en lugar de copiar archivos al nuevo clúster
-oopciones que se pasarán directamente al antiguo postgres; se añaden múltiples invocaciones de opciones
-Oopciones que se pasarán directamente al nueva postgres; se añaden múltiples invocaciones de opciones
-rconservar SQL y registrar archivos incluso después de completarlos correctamente
-vhabilitar el registro interno detallado
-Vmostrar información de la versión y luego salir
-?mostrar la ayuda y luego salir

Comprobación de la copia

Ahora si inicias los dos servicios que hemos parado anteriormente y abres pgAdmin podrás ver las bases de datos que teníamos en la versión antigua y en la nueva versión.

Se recomienda no eliminar inmediatamente después la versión anterior de PostgreSQL por seguridad hasta que se compruebe que todo es correcto, pero eso irá en función de tus necesidades. Recuerda que si has instalado la nueva versión de PostgreSQL en un puerto diferente deberás cambiar las conexiones de los programas que lo utilicen, como las conexiones ODBC. Si has instalado todo en el mismo puerto no es necesario realizar ningún cambio.

Borrar datos de la versión antigua de PostgreSQL

Ahora que estas seguro de que ha funcionado la copia y ya no necesitas los datos de la version antigua los puedes borrar siguiendo estos pasos:

  1. Abre la linea de comandos con permisos de administrador.
  2. Accede a la carpeta de la nueva version de PostgreSQL
CD C:\Program Files\PostgreSQL\14\bin
  1. Escribe el siguiente comando para borrar los datos de la versión antigua (esto borrara la carpeta data de la versión antigua ubicada en c:\Program Files\PostgreSQL\13\data)
delete_old_cluster.bat
Lenguaje del código: CSS (css)

Desinstalar versión antigua de PostgreSQL

Desinstalar la versión antigua de PostgreSQL es muy fácil, sigue estos pasos:

  1. Abre agregar o quitar programas.
  2. Busca y pulsa en desinstalar/modificar/cambiar sobre PostgreSQL.
  3. En el asistente marca la casilla Aplicación completa.
  1. Reinicia la maquina (opcional, pero recomendable) y ya tendrás actualizada tu versión de PostgreSQL

Escribir un comentario