Rails y Oracle

Hola Amigos!

Pues veréis, estoy liao con ruby on rails, hace muy poco que empecé,
digamos que hace 2 días hice mi primera aplicación muy sencilla
siguiendo unos tutoriales, pero el caso es el siguiente, yo uso “oracle
9i” ademas ya tengo rails y todo este follón o eso creo ademas, del
radrails como mi editor.

El caso es el siguiente, no tengo cujons de hacer funcionar oracle con
ruby es decir, el caso es que no entiendo como habria que hacer cada
paso…alguien me puede explicar algo? creo que he instalado el oci8 en
condiciones, pero aun asi tengo problemas, al hacer la migracion me daba
un error del tns diciendome no se qué cosa del listener.

Weno el caso es el siguiente, aparte de lo que ya os he comentado de los
fallos, yo no quiero que me resolvais los fallos, me gustaría que me
proporcionaseis algun tutorial sencillo a ver si sería posible o
simplemente explicandome como sería el proceso…

Muchisimas gracias a todos y felices fiestas!

On Dec 30, 2006, at 3:08 PM, Pablo wrote:

condiciones, pero aun asi tengo problemas, al hacer la migracion me
daba
un error del tns diciendome no se qué cosa del listener.

Weno el caso es el siguiente, aparte de lo que ya os he comentado
de los
fallos, yo no quiero que me resolvais los fallos, me gustaría que me
proporcionaseis algun tutorial sencillo a ver si sería posible o
simplemente explicandome como sería el proceso…

Oracle tiene un FAQ sobre su uso en Rails, quiza te pueda servir:

http://www.oracle.com/technology/pub/articles/saternos-ror-faq.html

– fxn

Ya verás, en eso me he basado, pero ahí me dice de bajar el
istantclient, pero yo ya trabajo con oracle 9i, no sé si será necesario
el instalar eso tambin, el caso es que a ver…yo cuando creo una tabla
en consola con mysql por poner un ejemplo escribo la siguiente
instrucción:

“mysqladmin -u root create tienda_development”

el caso es cómo sería para que me crease la tabla en oracle? cómo sería
la instrucción?

Luego cuando hago el rake db:migrate me da el error ese del listener en
el tns, que creo que lo tengo bein configurado, aunque no sé :S

Saludos!

Hola Xavier, muchas gracias pues me ha servido mucho lo que me has
puesto, mi problema como dije antes era que me daba un error de tns, que
no se reconocia el nombre de servicio, y efectivamente, “HOST:
SERVICE_NAME” el mismo que tengas puesto en la configuración del
tnsnames.ora .

Como bien me has dicho antes, no existe comando para crear las tablas
como con mysql, en este caso debes crearlo mediante un script o
directamente a mano desde la consola desde sql*plus.

Pronto haré un tutorial pues esto es un trabajo que quiero presentarlo
en la escuela en una asignatura de libre configuración.

Ya lo colgaré.

Muchos saludos y felices fiestas!!

www.pverd.tk

On Dec 30, 2006, at 4:42 PM, Pablo wrote:

Ya verás, en eso me he basado, pero ahí me dice de bajar el
istantclient, pero yo ya trabajo con oracle 9i, no sé si será
necesario
el instalar eso tambin, el caso es que a ver…yo cuando creo una
tabla
en consola con mysql por poner un ejemplo escribo la siguiente
instrucción:

“mysqladmin -u root create tienda_development”

En MySQL eso se puede hacer con el cliente de linea de comandos mismo:

$ mysql -u root -p

mysql> create database foo;

Nunca he creado una base de datos Oracle (siempre me las he
encontrado ya creadas), pero segun parece puedes igualmente crear una
a mano con SQL*Plus como se explica aqui

http://www.examcram2.com/articles/article.asp?p=350920&seqNum=5&rl=1

Aunque lo recomendado leo que es usar un wizard de Oracle si lo
tienes (Oracle Database Configuration Assistant).

el caso es cómo sería para que me crease la tabla en oracle? cómo
sería
la instrucción?

Una vez consigas crear la base de datos, configurar tnsnames.ora, y
conectar a Oracle desde Ruby con el one-liner que hay en el FAQ de
Oracle en Rails, estaras listo para trabajar desde Rails. Yo no me
pondria con Rails antes de llegar a ese punto.

Una vez ahi ya pon el alias (net service name) que pusiste en
tnsnames.ora en el database.yml

development:
adapter: oci
host: net_service_name
username: foo
password: NAUER

y usa migrations para que sea AR quien cree las tablas. Ademas Oracle
no tiene campo autoincremental es mejor delegar en las migrations
porque ellas crearan una sequencia para la llave primaria. Es decir,
en Rails ya siempre usamos migrations, pero en este caso la opcion
manual es aun pelin mas complicada que con MySQL por ese detalle.

– fxn

On Jan 4, 2007, at 10:28 AM, Guest wrote:

y usa migrations para que sea AR quien cree las tablas. Ademas Oracle
no tiene campo autoincremental es mejor delegar en las migrations
porque ellas crearan una sequencia para la llave primaria. Es decir,
en Rails ya siempre usamos migrations, pero en este caso la opcion
manual es aun pelin mas complicada que con MySQL por ese detalle.

Entonces, a ver que yo me entere, con Oracle no podemos usar “rake
db:migrations”??

No, no, lo que decia es justamente que uses migrations.

– fxn

y usa migrations para que sea AR quien cree las tablas. Ademas Oracle
no tiene campo autoincremental es mejor delegar en las migrations
porque ellas crearan una sequencia para la llave primaria. Es decir,
en Rails ya siempre usamos migrations, pero en este caso la opcion
manual es aun pelin mas complicada que con MySQL por ese detalle.

Entonces, a ver que yo me entere, con Oracle no podemos usar “rake
db:migrations”??

Las tablas hay que crearlas de forma manual,no? me refiero, lanzando un
script o directamente con un gestor de la base de datos,no? En este caso
yo uso el Oracle Enterprise Manager.

Muchas gracias y saludos!