segunda-feira, 14 de novembro de 2011

Acessando base de dados PostgreSQL utilizando RUBY na linha de comando

INTRODUÇÃO: Este tutorial tem o objetivo de demonstrar a utilização do RUBY com a linha de comando. Iremos criar um arquivo contendo um simples programa escrito em código RUBY que faz acesso a uma base de dados em PostgreSQL. Quem quiser deixar alguma sugestão ou crítica, fique a vontade para utilizar os comentários logo abaixo desta postagem.

OBS: Para seguir esse tutorial perfeitamente, é necessário utilizar o Ubuntu Linux 10.10, ter instalado o ambiente de desenvolvimento do RUBY (estamos utilizando a versão 1.9.2) e um banco de dados PostgreSQL (recomendo a versão 9.0 mas poderá ser utilizada a versão 8.4)

PASSO 01: Instalando e configurando o PostgreSQL e o cliente PGADMIN (utilize o terminal do Ubuntu):
$ sudo apt-get install postgresql-8.4 pgadmin3
$ sudo -u postgres psql template1
$ alter user postgres with encrypted password 'SENHA_BANCO';
$ \q
$ sudo /etc/init.d/postgresql restart


PASSO 02: Instalando o suporte do RUBY ao PostgreSQL (utilize o terminal do Ubuntu):
$ gem install pg 

OBS: Caso sua rede esteja protegida com um proxy não transparente, tente utilizar o comando abaixo:
$ gem install pg --http-proxy http://USUARIO_PROXY:SENHA_PROXY@ENDERECO_PROXY:PORTA_PROXY

PASSO 03: Agora que o POSTGRES e o PGADMIN estão instalados, você poderá procurar o PGADMIN em sua área de trabalho e criar uma simples base de dados chamada BANCO e inserir alguns dados:
BEGIN;
CREATE TABLE pessoa (
    id serial primary key,
    nome varchar,
    datanasc date
);
INSERT INTO pessoa (nome, datanasc) VALUES ('Jefferson', '1980-06-12');
INSERT INTO pessoa (nome, datanasc) VALUES ('Daniel', '1981-03-23');
INSERT INTO pessoa (nome, datanasc) VALUES ('Bruno', '1982-05-05');
INSERT INTO pessoa (nome, datanasc) VALUES ('Eduardo', '1984-08-10');
INSERT INTO pessoa (nome, datanasc) VALUES ('Viviane', '1981-02-22'); 
COMMIT;


PASSO 04: Agora crie em sua pasta de projetos o arquivo teste_postgres.rb com o seguinte conteúdo abaixo (você poderá cria-lo em qualquer local de sua pasta /home/USUARIO e utilizar o GEDIT em ambiente gráfico ou o PICO no terminal):
require 'pg'
conn = PGconn.connect('ENDERECO_BANCO', PORTA_BANCO, nil, nil, 'BANCO', 'USUARIO_BANCO', 'SENHA_BANCO')
res = conn.exec("SELECT id, nome, to_char(datanasc, 'DD/MM/YYYY') as nascimento FROM pessoa")
res.each do |r|
    puts "#{r['id']} - #{r['nome']} - #{r['nascimento']}"
end
res.clear
conn.close


PASSO 05: Para executar o programa acima, abra o terminal e execute o comando abaixo:
$ cd /home/USUARIO_SO/CAMINHO_ATE_ARQUIVO/
$ ruby teste_postgres.rb


OBS: Após executar o último comando, o programa irá exibir todos os dados inseridos no PASSO 03. 
CONCLUSÃO: Este tipo de programação é muito útil para trabalhar com scripts de migração ou manutenção de dados de forma ágil e transparente para o usuário final. Obviamente o RUBY fornece técnicas ou estruras de programação mais robustas para desenvolver programas profissionais que será foco de futuros tutoriais neste mesmo blog.

REFERÊNCIAS:

01. Ruby Programming Language - http://www.ruby-lang.org
02. PostgreSQL - http://www.postgresql.org
03. PG - http://rubygems.org/gems/pg
04. UBUNTU - http://www.ubuntu.com

Nenhum comentário:

Postar um comentário