Pasar bases de datos Postgresql de una versión (o máquina) para otra.


Jaime E. Villate.

9 de enero de 2001
Nivel: medio
Sistema: linux
Arquitectura: i386
Distribución: potato
Sección: miscelanea
Función: uso

Entre diferentes versiones de Postgrsql es necesario reconstruir las bases de datos existentes para que se ajusten al nuevo formato. El paquete postgresql en Debian tiene un script que hace esta tarea automáticamente, pero suele fallar y corremos el riesgo de perder datos. Es recomendable hacer la actualización manualmente así:

  1. Hacer una copia de seguridad del directorio de las bases de datos, que están en el directorio /var/postgres/data (en alguna versión de Debian cambió de lugar y ahora están en /var/lib/postgres/data).

  2. Por cada base de datos se usa (estando como dueño de la bd)



    pg_dump nombre-basedatos >nombre.dump

  3. Revisar el fichero para ver que no tenga mensajes de error.

  4. Ahora ya se pueden borrar todas las bases de datos con:



    destroydb nombre-basedatos

  5. La actualización de postgresql será ahora mas fácil por no existir ninguna base de datos. Después de actualizar se reconstruyen las bases de datos con:



    psql -d nombre-basedatos -f nombre.dump
    donde nombre.dump es cada uno de los ficheros creados en el paso 2 y se deberá estar en el directorio donde fueron creados.

Los ficheros .dump obtenidos también pueden ser usados para reproducir las bases de datos en otra máquina.

© 2001, La Espiral.