2010-06-18 26 views
5

¿Hay alguna forma de recuperar la cadena de conexión de la base de datos donde está conectado mi ruby? Lo que me gustaría conseguir es el:Ruby on rails - cómo recuperar las cadenas de conexión

1) Nombre de la base, donde el rubí está conectado 2) El nombre de usuario del servidor SQL Server 3) Contraseña del servidor SQL Server nombre 4) Servidor

quiero para almacenarlo en variables de sesión.

(I'am el uso de MS SQL Server.)

Por favor, ayuda! ¡Gracias!

+0

Ni siquiera voy a preguntar por qué querría almacenar estos en variables de sesión. De acuerdo. ¿Por qué quieres almacenar estos en una sesión? – theIV

+0

porque necesito llamar a una aplicación CGI, y este CGI necesita conectarse a la base de datos donde está conectado mi ruby. tenga en cuenta que cada cliente tiene diferentes cadenas de conexión, por lo que la cadena de conexión de la aplicación CGI debe ser dinámica dependiendo de la cadena de conexión ruby. Espero que puedas ayudarme con esto. gracias – Jett

Respuesta

0

Todos estos valores están almacenados en el archivo config/database.yml, pero AFAIK no puede acceder a estos valores como variables desde su controlador.

+0

Su aplicación podría leer/interpretar el archivo config/database.yml. Entonces tendría toda la información para hacer como lo deseara. –

0

Base de datos: ActiveRecord::Base.connection.current_database

También podría hacer algunas regexs de lujo con lo siguiente:

ActiveRecord::Base.connection.inspect 

Pero sí, esto es una idea terrible.

+0

usando ActiveRecord :: Base.connection.inspect muestra el nombre de usuario y la contraseña, pero estoy teniendo problemas con las expresiones regulares, no puedo obtener solo digo la contraseña solo – Jett

5

Puede acceder a todas las propiedades descritas en sus database.yaml como esto:

ActiveRecord::Base.configurations["development"] => 
{"encoding"=>"utf8", "username"=>"foo", "adapter"=>"mysql", "database"=>"bar_development", "host"=>"localhost", "password"=> "baz"} 
+0

Esto funcionó perfectamente para mí. Necesitaba escribir una tarea de rake que mysqldump'ed nuestra base de datos de producción, y no quería tener que codificar las cadenas de conexión fuera del archivo database.yml. –

5

Me gustaría ir con ActiveRecord::Base.connection_config que devuelve hash con opciones de ActiveRecord 3.

0

Suena como si sólo quiere conectarse directamente a la base de datos. Puede hacerlo con rails dbconsole (vea docs)