Tienes que habilitar la depuración en dos lugares. En PGAdmin y en la propia base de datos. Ese artículo al que hace referencia hace un trabajo maravilloso al explicarlo, pero hubo algunos matices.
Administrador de PPG
Al actualizar su postgresql.conf
para cargar la biblioteca de depuración, estaba ejecutando PGAdmin en Windows
entonces el archivo estaba aquí:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
Y la ruta al plugin_debugger.dll
era en realidad
$libdir/plugin_debugger.dll
no
$libdir/plugins/plugin_debugger.dll
como se especifica en el artículo. Entonces su postgresql.conf
necesitaría una línea como esta
shared_preload_libraries = '$libdir/plugin_debugger.dll'
Busque el .dll real si tiene dudas. Si está en Linux, el archivo que buscará es plugin_debugger.so
. No olvide que cambiar el postgresql.conf
será necesario reiniciar el archivo para que el cambio surta efecto.
Base de datos PostgreSQL
Suponiendo que está ejecutando su base de datos PostgreSQL en un servidor Linux esta esencia hace un excelente trabajo al explicar cómo descargar las dependencias para habilitar la depuración. Asegúrese de estar ejecutando como root cuando instale.
La parte que es fácil pasar por alto es emitir el comando contra la base de datos real que desea depurar. Para las versiones más nuevas de PostgreSQL, todo lo que debe hacer es esto:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Si eso no devuelve un error, debería estar listo para continuar.
Algunas cosas adicionales a tener en cuenta:
- Como se mencionó anteriormente, solo puede depurar cuando se ejecuta como una cuenta de superusuario
- De sus documentos
solo puede depurar funciones pl/pgsql. Entonces, si su función dice algo como
LANGUAGE c
PGAdmin ni siquiera mostrará una opción de menú Depurar con el botón derecho del ratón cuando seleccione la función. Busque algo que tengaLANGUAGE plpgsql
y debería aparecer el menú Depurar.