quinta-feira, 17 de maio de 2012

Instalar/Configurar "Debugador" de PL/pgSQL (pldebugger) no PostgreSQL 9.1 usando Ubuntu


O passo-a-passo abaixo foi realizado no Ubuntu 10.04LTS com o PostgreSQL 9.1 instalado via ppa do Martin Pitti, mas creio que pode ser executado tranquilamente utilizando a última versão LTS do Ubuntu, a 12.04LTS.

1) Download dos fontes do PostgreSQL

$ wget -c http://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.bz2


2) Precisamos instalar ferramentas necessárias para compilação da extensão

$ sudo apt-get update
$ sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison libssl-dev git-core


3) Compilar o PostgreSQL e a extensao pldebugger

$ tar jxvf postgresql-9.1.3.tar.bz2
$ cd postgresql-9.1.3
$ ./configure --prefix=/usr --includedir=/usr/include --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/postgresql-9.1 --srcdir=. --mandir=/usr/share/postgresql/9.1/man --docdir=/usr/share/doc/postgresql-doc-9.1 --datadir=/usr/share/postgresql/9.1 --bindir=/usr/lib/postgresql/9.1/bin --libdir=/usr/lib/postgresql/9.1/lib --includedir=/usr/include/postgresql/ --enable-integer-datetimes --with-openssl
$ make
$ cd contrib
$ git clone git://git.postgresql.org/git/pldebugger.git
$ cd pldebugger
$ make
$ sudo make install

Obs: lembrando que, apesar de extenso, o "./configure" deve ser todo escrito na mesma linha

4) Após compilar e instalar a extensao pldebugger precisamos ativa-a no PostgreSQL

$ sudo vim /etc/postgresql/9.1/main/postgresql.conf

alterar
 
  #shared_preload_libraries = ''

para
 
  shared_preload_libraries = '$libdir/plugin_debugger'
 

5) Reiniciar PostgreSQL

$ sudo /etc/init.d/postgresql restart 9.1


6) Criar a EXTENSAO "pldbgpapi" na(s) base(s) de dados que deseja fazer debug de pls

$ psql -U postgres bdteste
psql (9.1.3)
Digite "help" para ajuda.


bdteste=# CREATE EXTENSION pldbgapi;
CREATE EXTENSION
bdteste=#


7) Pronto, agora vc pode usar o PGAdmin para "debugar" suas funções PL/pgSQL



---
Fabrízio Mello
fabriziomello [at] gmail.com


2 comentários:

  1. Olá Fabrízio !! Estou com um problema no postgresql e estou na minha primeira instalação para começar a aprender...Na hora que estou criando o banco pela linha de comando ele pede senha e eu digito, mas apareçe uma mensagem tipo "postgres não conseguiu conectar com o database erro fatal, falha na autenticação da senha", no entanto já troquei a senha do usuario postgres diversas vezes e o erro persiste. Estou usando a ferramenta no windows seven 64bits(já tentei no XP tambem)... Poderia me ajudar? Desde já muito obrigado e valeu pela atenção!!!

    ResponderExcluir
  2. Olá Fábio,

    Minha experiência com PostgreSQL nessa plataforma (Windows) é limitada, mas parece que nesse seu caso o problema é no seu "pg_hba.conf" (Host Based Authentication), ou seja, o arquivo de configuração das permissões para autenticação dos usuários na base de dados. Tente editá-lo e alterar os métodos de autenticação das regras (última coluna) para "trust", depois faça um reload no processo do PostgreSQL e tente novamente.

    Também gostaria de comentar que esse não é o melhor local para vc tirar esse tipo de dúvida, então o convido para assinar nossa lista de discussão [1] da Comunidade Brasileira de PostgreSQL, onde temos muitas pessoas observando as dúvidas e ajudando. Faça um teste, se cadastre lá e envie um email com essa dúvida e vc verá como será.

    Abraços,

    [1] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

    --
    Fabrízio de Royes Mello
    Comunidade Brasileira de PostgreSQL

    ResponderExcluir