Pregunta

¿Cómo puedo utilizar la información de conexión de base de datos en tnsnames.ora cuando se conecta con rieles?

He intentado establecer el database: o los campos host: en el database.yml al SID, pero tampoco funcionó.

sqlplus verificó que puede conectarse a la base de datos, por lo que el tnsnames.ora es correcta.

Estoy usando DataMapper en los carriles 3, si eso ayuda a todos.

¿Fue útil?

Solución

Creo que hablamos en #datamapper hace un par de días. Sqlplus es una pieza de software de Oracle que interconecta con lo que supongo es su sistema de equilibrio de carga.

DataMapper supone que hay una correspondencia 1 a 1 entre un repositorio y un almacén de datos. Típicamente significa esto que se supone que el equilibrio de carga se maneja almacén de datos de lado (por ejemplo MySQL o Postgres clustering).

Sin embargo, no hay nada que impida que alguien escriba una biblioteca que permitiría DataMapper intercambio en caliente entre un grupo de repositorios, si fuera posible obtener una lectura de la carga en cada uno de los almacenes de datos asociados a cada repositorio (es decir, escriba su propio pequeño balanceo de carga router).

El trabajo i empresa para usos DataMapper repositorios exactamente de esta manera (por separabilidad de los registros, en lugar de para el equilibrio de carga).

es tan simple como:

DataMapper.repository(seed_repository_symbol) { return your_code_block.call }

Otros consejos

Después de unas horas de quejarse con este mismo he descubierto que la respuesta es:

# WORKS
development:
  adapter: oracle
  host: devdb
  username: user
  password: pwd

Estoy usando Rails 3.2.1, 1.2.0 DM en Win7 con tanto de 32 bits como de 64 bits clientes regulares de Oracle instalados.

Una cosa muy importante que descubrí lo largo del camino:. Debe reiniciar el servidor dev carriles entre cada mod de database.yml para recoger los cambios I desperdicia mucho tiempo sin saber esto. Por alguna razón la configuración DataMapper no estaba recogiendo los cambios aquí, como es normal con el servidor dev.

Historia:

Me dijeron que la respuesta era esto (por otro desarrollador en otra empresa que utiliza JRuby en Windows):

# DID NOT WORK
development:
  adapter: oracle
  database: user/pwd@devdb

Eso no funcionó para mí y yo sospechaba que la respuesta era utilizar dos puntos (basado en la sintaxis DataMapper.setup):

# DID NOT WORK
development:
  adapter: oracle
  database: user:pwd@devdb

Esto no funcionó bien, así que probé conexiones manuales en la IRM y estudió la respuesta de DataMapper.setup. Pone el SID en host y no indica database lo que he intentado lo mismo en database.yml. Funcionó.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top