Actualizando PostgreSQL 9.3 a 9.5 en Ubuntu

Cuando sale una nueva versión de PostgreSQL y es momento de actualizarnos.

Odoo CMS - a big picture

Haz un respaldo

Solo Dios sabe lo desesperante que es no haberlo hecho antes =)

Antes de cualquier movimiento hay que hacer un backup de nuestras bases de datos:

pg_dumpall > 9.3-backup

Instalando desde los fuentes

i utilizas repositorios APT solo instala postgresql-9.5, de otra forma puedes seguir los siguientes pasos.


Agregar el repositorio apt de  PostgreSQL a los fuentes


echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/postgres.list 


esto crea una nueva línea en /etc/apt/sources.list.d/postgres.list:


deb http://apt.postgresql.org/pub/repos/apt/ wily-pgdg main


Donde wily es el código del nombre de la versión.

Agregar la llave del nuevo repositorio agregado como fuente:

sudo apt-get install wget ca-certificates wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - Update and install the new PostgreSQL 9.5 package
sudo apt-get update sudo apt-get install postgresql-9.5


Nota: Si se utilizan extensiones adicionales como hstore de los paquetes de postgresql-*-9.3 , este es el momento de instalarlos en sus versiones equivalentes en version 9.5. Sin ellos la migración no funcionará.


Actualizando

Con suerte en Ubuntu el paquete contrib está instalado automáticamente con el paquete principal.

 

Durante la instalación de la nueva versión, podremos notar que se creó una nueva carpeta para la versión 9.5 en 7etc/postgresql .

Hay que eliminar el nuevo cluster vacío que creó la instalación:

pg_dropcluster 9.5 main 


Estamos eliminándolo por que nuestro proceso de actualización de 9.3 creará y convertirá la información anterior al formato de la nueva versión 9.5.

Actualizamos nuestras bases de datos

pg_upgradecluster 9.3 main 


Dependiendo de la cantidad e datos que se tenga esto puede tomar mucho tiempo. Una ves terminado exitosa-mente veremos un mensaje:

Success. Please check that the upgraded cluster works.

Elimina el cluster anterior

Ahora Postgres 9.5 deberá estar corriendo, hay que verificar las aplicaciones que utlizan postgres  para confirmar que los datos son correctos. Si todo trabaja bien, podemos eliminar el cluster anterior corriendo:


pg_dropcluster 9.3 main


En caso de que el sistema no permita eliminar el cluster hasta detenerlo:


sudo systemctl stop postgresql@9.3-main


 Si algo sale mal podemos regresar a nuestro backup que hicimos en el primer paso

 

Eso es todo ahora disfruta de la nueva versión de PostgreSQL.