Back-End

17 abr, 2009

Configurando o Ruby e o Rails para acessar o Oracle Database

Publicidade

Bem, para começar, vamos identificar nosso propósito, que será fazer com que o Ruby e o Rails possam acessar o Oracle Database. Mas, para isso, primeiro precisaremos saber se o Oracle está instalado localmente em nossa máquina ou se teremos que acessá-lo via rede.

Nosso exemplo será feito com um acesso local, mas irei demonstrar como preparar para um acesso via rede.

Primeiro vamos levar em consideração que não temos o Oracle Database instalado em nossa máquina e teremos que acessá-lo via rede. Sendo assim, teremos que baixar e instalar o Oracle Client.

1. Acesse : http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html .

2. Se ainda não for registrado na OTN (Oracle Technology Network) você deverá registrar-se, aceitar os termos dados pela Oracle e então fazer o download do instantclient-basic-win32-10.2.0.4.zip .

3. Salve-o em um diretório e assim que finalizar o download do arquivo descompacte-o, faça uma cópia dos arquivos que foram descompactados, somente os com a extensão “*.dll”. Faça uma cópia deles e logo em seguida cole no diretório “Bin” do Ruby, geralmente o caminho é o seguinte : “c:\ruby\bin”. Fazendo isso você já estará apto a acessar o Oracle via rede, pois no caso de um acesso local o próprio Oracle Database instala o Oracle Client.

Seguindo em frente, vamos continuar como se tivéssemos o Oracle instalado localmente.

4. Em nossa segunda fase do processo será necessário baixar o adptador ruby-oci8-1.0.5-mswin32.rb no seguinte endereço : http://rubyforge.org/frs/?group_id=256release_id=32314 , salve-o em um diretório do seu computador.

5. Após o download, entre no diretório em que foi salvo o arquivo através do prompt de comando.

6. Execute ruby ruby-oci8-1.0.5-mswin32.rb

7. Serão retornadas as seguintes linhas :

8. Responda “Yes”

Pronto, já estamos aptos a acessar o Oracle, seja local ou remotamente via Ruby. Agora vamos instalar o adaptador de acesso ao Oracle Database para o Rails.

9. Via linha de comando, vamos digitar o seguinte comando : gem install activerecord-oracle-adapter -source http://gems.rubyonrails.org e tecle

Muito bem, agora que temos os adaptadores instalados podemos executar nossos primeiros códigos e vê-los funcionando com consultas ao Oracle Database.

10. Ainda no prompt de comando vamos digitar:

ruby -r oci8 -e OCI8.new(system, oracle).exec(select table_name from user_tables) do r puts r.join( ); end

Resultado:

Como resultado será listada na tela uma relação de nome das tabelas que estão inseridas na tabela user_tables que é uma tabela de sistema do Oracle Database.

Gostaria de fazer algumas observações nesse ponto do artigo. Uma delas é que somente para efeito de teste usei o usuário system, claro que quando formos fazer no dia a dia, faremos com um esquema que não seja o system, pois esse tipo usuário não deve ser usado sem necessidade.

A segunda observação que eu gostaria de deixar é que nessa instrução usei uma conexão local, agora exemplificarei como ela ficaria para acessar as informações em um banco externo.

No método new da OCI8 passamos dois parâmetros, o primeiro é o nome de usuário ou schema no banco, o segundo é a senha do usuário passada no parâmetro anterior. Agora, para que possamos acessar um banco que não esteja localmente teremos que passar um terceiro parâmetro que informará os dados do banco a ser acessado.

ruby -r oci8 -e OCI8.new(system, oracle,’ip_do_banco:port/sid).exec(select table_name from user_tables) do r puts r.join( ); end

Pronto, agora é só rodar.

Depois de conseguirmos acesso ao Oracle Databas e através do Ruby, precisamos fazer nossa primeira aplicação em Rails. Ela será bem simples, consistirá em apenas um formulário do tipo CRUD(Create, Read, Update e Delete).

11. Crie um diretório onde será criada sua aplicação.

12. Logo em seguida, digite:

rails rails_oracle -d oracle tecle enter.

Resultado:

O Rails criará a aplicação com toda a estrutura de diretórios necessários para o correto funcionamento da aplicação.

13. Depois de criada a aplicação, teremos que configurá-la para o acesso ao Oracle Database.

Vá até o diretório da aplicação.

Entre no diretório config.

E com um editor de texto de sua preferência Edit o arquivo database.yml

Neste momento, vamos editar o arquivo de configuração do acesso ao banco de dado da nossa aplicação Rails.

Aplicação com acesso local ao banco.

development:

adapter: oracle Aqui indicamos o adaptador de acesso que será o Oracle.
database: xe Nessa opção indicamos o nome do SID
username: scott Nome do usuário do banco.
password: tiger Senha do usuário do banco

Aplicação com acesso remoto ao banco.

development:

adapter: oracle Aqui indicamos o adaptador de acesso que será o Oracle
database: ip_da_maquia_servidora:port/SID Nessa opção indicamos o nome do SID,
username: scott Nome do usuário do banco.
password: tiger Senha do usuário do banco.

Nas seções de test e desenvolvimento do sistema não vamos fazer alterações, depois em suas aplicações vocês poderão usar o mesmo padrão utilizado na seção de test.

Muito bem, agora temos nosso arquivo de acesso ao banco configurado, então chegou o momento de fazermos nosso primeiro CRUD.

Voltemos a nosso prompt de comando e digitemos a seguinte linha:

ruby script/generate scaffold cd titulo:string descricao:text data_cadastro:date

Agora após criada a estrutura do nosso primeiro CRUD precisaremos rodar um rake para criar a estrutura de dados no banco, então executemos o seguinte comando em nosso prompt.

rake db:migrate

Se você quiser, poderá usar uma ferramenta de trabalho com banco de dados e visualizar a sua estrutura, que agora deve existir mais uma tabela chamada CDs e também uma sequence chamada CDS_SEQ que fará o trabalho de gerar o número de auto-incremento do campo de ID de nossa tabela que foi criada automaticamente.

Ok, agora criada a tabela e nosso formulário, precisaremos testá-los, para tal vamos até o prompt de comando e executemos o seguinte comando.

ruby script/server

Pronto, quando o servidor terminar de subir como mostrado na imagem acima, é só entrar no seu browser e executar o seguinte endereço: http://localhost:3000

Como resultado teremos a seguinte tela:

Ao clicar no link About your applications enviroment veremos as especificações do nosso ambiente de trabalho como versões do Ruby, Rails e outros utilizados.

Agora no browser vamos entrar no endereço do nosso CRUD que vai ser http://localhost:3000/cds

Aqui ele listará todos os nossos CDs que forem cadastrados, e também poderemos cadastrar novos CDs.

Vamos clicar em New cd para cadastrar um novo cd em nossa coleção.

Aqui podemos digitar os dados do nosso CD a ser cadastrado e logo em seguida podemos clicar em create e os dados dele serão salvos no banco de dados.

Após criado o nosso primeiro registro podemos incluir novos, editar, visualizar e deletar os existentes através de nosso formulário.

Então chegamos ao fim de nosso artigo. Se tudo funcionou corretamente, parabéns! Agora você já sabe como iniciar o trabalho com Oracle Database, Ruby e Rails, e caso não tenha dado certo, por favor reveja os passos. Se ainda não der certo, me contacte.

Deixem seus comentários e sugestões.