Como usar vários bancos de dados em um aplicativo Rails usando o database.yml

Eu li sobre a documentação sobre como fazer isso, mas na prática, estou tendo problemas. No meu aplicativo, eu tenho dois bancos de dados diferentes, conforme descrito abaixo no meu arquivo 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>

Meu aplicativo é uma plotadora dinâmica que plota os dados em um banco de dados (básico) sem ter conhecimento do que está no banco de dados ou como está estruturado. Ambos os bancos de dados contêm dados diferentes. O banco de dados SQLite que criei em um aplicativo Rails separado.

O aplicativo atual que estou usando é construído em torno do banco de dados MYSQL, que eu construo externamente. Eu copiei o banco de dados SQLite para o diretório / db. Então, no meu modelo principal, quando eu digo:

<code>  class Plot < ActiveRecord::Base

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

Tudo funciona muito bem e dandy. No entanto, quando eu mudo para:

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

e tentar acessar esse banco de dados através do console do Rails, recebo um erro dizendo:

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

Eu não sei por que isso acontece, já que o arquivo database.yml claramente especifica um adaptador? Quando eu faço isso manualmente no meu modelo, tudo funciona exatamente como deveria.

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

Por que tudo isso funciona quando especifico manualmente o que está no database.yml, mas não quando uso apenas a referência database.yml?

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion