He leído la documentación sobre cómo hacerlo, pero en la práctica, tengo problemas. En mi aplicación, tengo 2 bases de datos diferentes como se describe a continuación en mi archivo database.yml.Cómo usar varias bases de datos en una aplicación de Rails con la base de datos.yml
sqlite_test:
adapter: sqlite3
database: db/sqlite_test.sqlite3
table: plots
pool: 5
timeout: 5000
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: test
pool: 5
username: myname
password: mypassword
host: localhost
Mi aplicación es un plotter dinámico que representar los datos en una base de datos (base) sin tener conocimiento de lo que hay en la base de datos, o cómo su estructurada. Ambas bases de datos contienen datos diferentes. La base de datos SQLite que creé en una aplicación Rails separada.
La aplicación actual que estoy utilizando se basa en la base de datos MYSQL, que construyo externamente. Copié la base de datos SQLite en el directorio/db. Entonces, en mi modelo principal, cuando digo:
class Plot < ActiveRecord::Base
establish_connection :development
set_table_name "stock_test"
set_primary_key :id
Todo sale bien y dandy. Sin embargo, cuando lo cambio a:
establish_connection :sqlite_test
set_table_name "plots"
y tratar de acceder a esa base de datos a través de la consola de Rails, me sale un error diciendo:
>>ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
No sé por qué es así, ya que el El archivo database.yml claramente especifica un adaptador? Sin embargo, cuando lo hago a mano en mi modelo, todo funciona exactamente como debería.
class Plot < ActiveRecord::Base
establish_connection(:adapter => "sqlite3", :database => "db/sqlite_test.sqlite3", :pool => 5)
¿Por qué todo el trabajo cuando especificar manualmente cuál está en el database.yml, pero no cuando sólo tiene que utilizar la referencia database.yml?
Gracias!
¿Esto no funciona si tiene dos 'desarrollo:' con diferente clave/valor? – vol7ron