sql >> Base de Datos >  >> RDS >> PostgreSQL

Depurar la función PostgreSQL usando pgAdmin

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 tenga LANGUAGE plpgsql y debería aparecer el menú Depurar.