39. Actualizaciones del Software¶
Dado que PostGIS reside dentro de PostgreSQL, cada instalación de PostGIS consta en realidad de dos versiones de software: la versión de PostgreSQL y la versión de PostGIS. Como principio general, cada versión de PostGIS puede ejecutarse teóricamente dentro de varias versiones de PostgreSQL, y viceversa.
En la práctica, el par de versiones disponibles será dictado por el gestor de paquetes de instalación que ha construido su distribución PostgreSQL. La mayoría de los paquetes de Linux incluyen un par de versiones de PostGIS para cada versión de PostgreSQL, permitiendo que las partes se actualicen de forma independiente o simultánea, dependiendo de sus preferencias.
Las actualizaciones pueden considerarse en términos de actualizar cada componente.
39.1. Actualizando PostgreSQL¶
Existen dos tipos de escenarios de actualización de PostgreSQL:
Una «actualización menor» cuando la versión del software aumenta a nivel de «parche». Por ejemplo, de 8.4.3 a 8.4.4, o de 9.0.1 a 9.0.3. Aumentos de más de una versión de parche también están bien. Las actualizaciones menores corrigen errores pero no agregan nuevas características ni cambian el comportamiento.
Una «actualización mayor» cuando aumentan las versiones «mayor» o «menor». Por ejemplo, de 8.4.5 a 9.0.0, o de 9.0.5 a 9.1.1. Las actualizaciones mayores agregan nuevas características y cambian el comportamiento.
39.1.1. Actualizaciones menores de PostgreSQL¶
Para las «actualizaciones menores», no es necesario un proceso especial. Simplemente instala el nuevo software y reinicia el servidor.
39.1.2. Actualizaciones mayores de PostgreSQL¶
Para las «actualizaciones mayores» hay dos formas de llevar a cabo la actualización.
39.1.2.1. Volacdo(Dump)/Restaurar¶
Volcar y restaurar implica convertir todos los datos a un formato neutral de plataforma (representaciones de texto) al hacer el volcado, y de vuelta a representaciones nativas al restaurar, por lo que puede consumir tiempo y ser intensivo en CPU. Sin embargo, si estás migrando a una nueva arquitectura o sistema operativo, es un proceso requerido. También es una ruta de actualización probada y bien entendida, así que si tu base de datos no es demasiado grande, no hay razón para no seguir con ella.
Vuelca tus datos con
pg_dumpall
desde la base de datos antigua.Instala la nueva versión de PostgreSQL y la misma versión de PostGIS que estás usando en tu base de datos antigua. Necesitas que coincida la versión de PostGIS para que las definiciones de funciones en el archivo de volcado hagan referencia a la versión esperada de la biblioteca PostGIS.
Inicializa la nueva área de datos usando el programa
initdb
del nuevo software.Inicia el nuevo servidor en la nueva área de datos.
Restaura el archivo de volcado usando
pg_restore
.
39.1.2.2. pg_upgrade¶
La utilidad pg_upgrade permite que los directorios de datos de PostgreSQL se actualicen sin el requisito de un paso de volcado/restauración. La utilidad no puede manejar cambios en los propios archivos de datos, pero maneja los cambios más comunes y frecuentes en las tablas del sistema que ocurren en las actualizaciones mayores de PostgreSQL.
Nota
Las instrucciones completas para ejecutar el proceso de actualización están en la página web de pg_upgrade en el sitio de PostgreSQL.
El programa pg_upgrade espera tener acceso a ambas versiones de PostgreSQL con las que está trabajando, la versión antigua y la nueva, por lo que tendrás que instalar ambas.
Instala la nueva versión de PostgreSQL que vas a usar.
Instala en el nuevo PostgreSQL la misma versión de PostGIS que estabas usando en el PostgreSQL antiguo.
Inicializa la nueva área de datos de PostgreSQL con la nueva copia de
initdb
.Asegúrate de que tanto el servidor antiguo como el nuevo de PostgreSQL estén apagados.
Ejecuta pg_upgrade, asegurándote de usar el binario de la nueva instalación de software.
pg_upgrade --old-datadir "/var/lib/postgres/12/data" --new-datadir "/var/lib/postgres/13/data" --old-bindir "/usr/pgsql/12/bin" --new-bindir "/usr/pgsql/13/bin"
Si pg_upgrade generó algún archivo
.sql
, ejecútalos ahora.Inicia el nuevo servidor.
39.2. Actualización de PostGIS¶
PostGIS maneja las actualizaciones menores y mayores a través del mecanismo de EXTENSION
. Si habilitaste espacialmente tu base de datos usando CREATE EXTENSION postgis
, puedes actualizar tu base de datos usando la misma funcionalidad.
Primero, instala el nuevo software para que esté disponible en la base de datos.
Luego, ejecuta el SQL para actualizar tu extensión de PostGIS.
-- If you are upgrading from PostGIS 2.5 or later
-- and want the latest installed version
SELECT postgis_extensions_upgrade();
-- If you are upgrading from an earlier version
-- you have to specifically turn on the version you want
ALTER EXTENSION postgis UPDATE TO '2.5.5';