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.