2012-01-17 19 views
7

¿Cómo puedo ejecutar una consulta SQL desde una aplicación de Rails a una base de datos MySQL?¿Cómo puedo consultar una base de datos MySQL desde una aplicación de Rails sin modelos?

Mi aplicación utiliza Postgres como base de datos primaria, pero necesito leer información de una base de datos secundaria de MySQL. No puedo crear modelos porque la base de datos MySQL tiene más de 100 tablas, nombradas de una manera incompatible para cada tabla. ¿Se puede hacer sin ActiveRecord o de alguna otra manera?

+0

Rails admite el forzado de nombres de tabla para un modelo en particular usando 'set_table_name" foo "'. Si el número de tablas es estático y es probable que las use todas, comenzaría a crear modelos en el orden en que se necesitan. También hay soporte en AR: Base para especificar el campo de clave principal. – Nick

Respuesta

13

Puede usar la gema mysql2 directamente. Lea la documentación aquí: https://github.com/brianmario/mysql2

O:

se puede crear una nueva clase como MySqlConnection así:

class MysqlConnection < ActiveRecord::Base 
    self.establish_connection(:adapter => 'mysql', :database => 'some-database-name') # Set all the other required params like host, user-name, etc 
end 

A partir de ahora, puede hacerlo,

MysqlConnection.connection.select_all("SELECT * FROM table_name") 

Siga el enlace para comprender cómo almacenar los detalles de configuración en database.yml: http://weare.buildingsky.net/2006/12/06/multiple-concurrent-database-connections-with-activerecord

+0

¡Gracias por tu respuesta! Es la mejor solución para mí. – Alve

Cuestiones relacionadas