Cómo usar múltiples bases de datos en una aplicación de Rails usando database.yml

He leído sobre la documentación sobre cómo hacer esto, pero en la práctica, estoy teniendo problemas. En mi aplicación, tengo 2 bases de datos diferentes como se describe a continuación en mi archivo database.yml.

<code>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
</code>

Mi aplicación es un trazador dinámico que trazará los datos en una base de datos (básica) sin tener conocimiento de qué hay en la base de datos o cómo está 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 usando se basa en la base de datos MYSQL, que yo construyo externamente. Copié la base de datos SQLite en el directorio / db. Así que en mi modelo principal, cuando digo:

<code>  class Plot < ActiveRecord::Base

  establish_connection :development
  set_table_name "stock_test"
  set_primary_key :id
</code>

Todo funciona bien y dandy. Sin embargo, cuando lo cambio a:

<code> establish_connection :sqlite_test
 set_table_name "plots"
</code>

e intentar acceder a esa base de datos a través de la consola de Rails, aparece un error que dice:

<code>>>ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
</code>

No sé por qué, ya que el archivo database.yml claramente especifica un adaptador? Sin embargo, cuando lo hago a mano en mi modelo, todo funciona exactamente como debería.

<code>class Plot < ActiveRecord::Base
establish_connection(:adapter => "sqlite3", :database => "db/sqlite_test.sqlite3", :pool => 5 )
</code>

¿Por qué funciona todo cuando especifico manualmente qué hay en el database.yml, pero no cuando solo uso la referencia database.yml?

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta