Ho letto la documentazione su come farlo, ma in pratica, sto avendo problemi. Nella mia app, ho 2 diversi database come descritto di seguito nel mio file database.yml.Come utilizzare più database in un'applicazione Rails Usando il database.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
La mia domanda è un plotter dinamico che tracciare i dati in un database (base) senza avere una conoscenza di che cosa è nel database, oppure come la sua strutturato. Entrambi questi database contengono dati diversi. Il database SQLite che ho creato in un'app Rails separata.
L'app corrente che sto utilizzando è costruita attorno al database MYSQL, che costruisco esternamente. Ho copiato il database SQLite nella directory/db. Quindi nel mio modello principale, quando dico:
class Plot < ActiveRecord::Base
establish_connection :development
set_table_name "stock_test"
set_primary_key :id
Tutto funziona perfettamente e dandy. Tuttavia, quando lo cambio a:
establish_connection :sqlite_test
set_table_name "plots"
e provo ad accedere a tale database tramite la console Rails, ottengo un errore che dice:
>>ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
Non so perché questo è, dal momento che la il file database.yml indica chiaramente un adattatore? Quando lo faccio a mano nel mio modello, però, tutto funziona esattamente come dovrebbe.
class Plot < ActiveRecord::Base
establish_connection(:adapter => "sqlite3", :database => "db/sqlite_test.sqlite3", :pool => 5)
Perché tutto il lavoro quando ho specificare manualmente che cosa è in database.yml, ma non quando mi basta usare il riferimento database.yml?
Grazie!
non funziona se si ha due 'sviluppo:' con chiave/valore diverso? – vol7ron