PostgreSQL: Cómo hacer debug de funciones con PgAdmin

pgAdmin y pldebugger

Hace unos días tenía que hacer seguimiento a unas funciones en PostgreSQL, de antemano sabía que me iba a tomar buen tiempo y jugar con raise notice no es algo que me guste mucho, así que se me ocurrió averiguar si existe un debugger para PgAdmin, y que creen? Pues que existe, es pldebugger.

Encontré muy buenas instrucciones sobre cómo instalarlo en un blog, les dejo la dirección aquí, pero faltaban un par de detalles así que copiaré las instrucciones a seguir. Lo olvidaba, uso PostgreSQL 9.1 sobre Debian 6, en una máquina virtual, las instrucciones deben ser similares para otros entornos.

En términos generales: Para poder depurar código en Postgresql hay que instalar una extensión en el servidor, pero esta extensión viene en forma de código fuente que hay que compilar, este código está alojado en git y para poder compilarlo necesitamos hacerlo contra el código de Postgresql, así que lo primero que hay que hacer es preparar el entorno para compilar el plugin.

PgAdminLogo

Pasos a seguir

Es necesario saber la versión de postgresql que estamos ejecutando, el comando es: psql -version

  1. Descargar el código fuente que corresponda a la versión que tenemos instalada desde este vínculo, descomprimir y desempaquetar. Quizás sea necesario instalar bzip2: apt-get install bzip2

  2. Desde la carpeta donde se tiene el código descomprimido es necesario compilar el código de PostgreSQL, para eso al comando configure se le pasan los mismos parámetros que se tienen en la instalación local: pg_config –configure | ./configure
  3. En la misma carpeta es necesario hacerle make, en mi caso tuve que hacer apt-get install libreadline5 libreadline5-dev y apt-get install zlib1g zlib1g-dev antes de que funcione.
  4. Una vez listo el código fuente del postgresql se debe descargar el código fuente del plugin dentro de la carpeta contrib de las fuentes de postgresql, para esto es necesario tener instalado Git: apt-get install git el comando para descargar el plugin es: git clone http://git.postgresql.org/git/pldebugger.git
  5. Se creará la carpeta contrib/pldebugger te ubicas allí y compilas con make
  6. Hay que copiar los siguientes archivos:
cp pldebugger/plugin_debugger.so /usr/lib/postgresql/9.1/lib/
cp pldebugger/pldbgapi.control /usr/share/postgresql/9.1/extension/
cp pldebugger/pldbgapi--1.0.sql /usr/share/postgresql/9.1/extension/ 
  1. Luego hay que editar el archivo de configuración del postgresql: nano /etc/postgresql/9.1/main/postgresql.conf, modificando la línea shared_preload_libraries = ‘ ‘ por shared_preload_libraries = ‘$libdir/plugin_debugger’
  2. Reiniciar el servidor postgresql.
  3. Ahora lo que queda es abrir el pgAdmin y ejecutar CREATE EXTENSION pldbgapi; en la base de datos que quieras depurar.

Más fácil aún

Para quienes tienen la misma configuración que yo (básicamente la versión 9.1 de postgresql), en esta dirección he guardado los tres archivos generados por la compilación del código de la extensión (y que son los que nos interesan), solo es necesario copiarlos en las rutas detalladas arriba, y listo, desde el PgAdmin podrán hacer debug de funciones.

Anuncios

2 comments

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s