BlogBlogs.Com.Br

terça-feira, 13 de maio de 2008

Rails 2.0 e Oracle XE


Nesse tutorial o primeiro passo de todo trabalho: Criar uma conexão Rails 2.0 + Oracle XE. O texto abaixo é uma adaptação de vários tutoriais sobre o assunto ou seja a maneira que funcionou no meu sistema.


Parte 1:

O primeiro passo é baixar o Oracle DataBase XE .

Após a instalação, acesse o endereço http://127.0.0.1:8080/apex crie um usuário ruby com privilégios de DBA.

Você pode usar o SQL*Plus que acompanha a instalação do Oracle ou mesmo criar pelo modo gráfico via navegador.

No SQL*Plus:

SQL> GRANT dba TO ruby IDENTIFIED BY ruby;
SQL> ALTER USER ruby DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
SQL> EXIT

Parte 2:
Vá em http://rubyinstaller.rubyforge.org/ e baixe o One-Click Ruby Installer.

Após a instalação execute RubyGems Pakage Manager e instale o Rails com o comando abaixo.

C:\> gem install rails –remote

A versão mais atual do Rails será instalada. É possível usar gem install rails -v 1.0.0 –remote para escolher a versão.

Agora baixe a biblioteca para a comunicação entre Oracle e Rails em http://rubyforge.org/projects/ruby-oci8 e instale usando o comando:

C:\> ruby ruby-oci8-0.1.13-mswin.rb

Note que o nome do arquivo vai depender da versão que você estiver usando!

Você irá precisar do adaptador Oracle que não está incluso no Rails 2.0 . Pegue o seu aqui!

Coloque o arquivo oracle_adpter.rb na pasta:
[sua instalação do ruby]
/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib
/active_record/connection_adapters

Parte 3:

Crie uma aplicação rails.

C:\> rails products_catalog
Configure o arquivo database.yml da sua nova aplicação da seguinte forma:

development:
adapter: oracle
database: Endereço do Host:Porta/TNS
username: ruby
password: ruby
No campo database eu preenchi com 127.0.0.1:1521/XE , que é o endereço do host, a porta e o nome. Acredito que funcione assim por default, mas você pode checar isso no arquivo TNSNAMES.ora em: C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN

Parte 4:
Gere uma scafolld, se tudo estiver correto você não terá problemas com isso.
C:\products_catalog> ruby script/generate scaffold product name:string description:text
No rails 2.0 esse commando irá criar os arquivos da aplicação bem como a migration para o banco. Sendo assim use o comando Rake para criar a tabela no banco.

C:\products_catalog> rake db:migrate
C:\products_catalog> ruby script/server
No navegador : http://localhost:3000/products

3 comentários:

Ricardo Leme disse...

Parabéns pelo artigo!
Porém, como eu ouço tanto falar que o foco do Ruby on Rails é a facilidade, sinceramente, a primeira vista, estou um pouco receioso em "começar a brincar" com o RoR.
Apenas para conectar no Oracle são inúmeros passos.. :(
Será que existe alguma IDE que facilite um pouco esse trabalho?

[]´s

André Anderi disse...

Existe sim. Procure pelo NetBeans 6.
Apesar de parecer complexo, esta conexão com o oracle é bem simples ^^.
O que vale lembrar é que RoR pode se conectar com mais facilidade ao MySQL.

Silva Developer disse...

Parabéns pelo post de muita importância para todos que estão integrando rails com oracle.Gostaria de poder contar com a sua ajuda via e-mail ou msn / gtalk caso encontre alguma dificuldade.

MSN: silva.developer@hotmail.com
GTALK: silva.developer@gmail.com

Abraço,

Silva Developer
www.silvadeveloper.wordpress.com