我已经阅读了关于如何做到这一点的文档,但在实践中,我遇到了问题。 在我的应用程序中,我有两个不同的数据库,如下所述在我的database.yml文件中。如何在Rails应用程序中使用多个数据库使用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
我的应用程序是一个动态绘图仪将绘制在(基本)数据库中的数据,而不必在数据库中最新的知识,或如何它的结构。这两个数据库都包含不同的数据。我在一个单独的Rails应用程序中创建的SQLite数据库。
我正在使用的当前应用程序是围绕MYSQL数据库构建的,我在外部构建它。 我将SQLite数据库复制到/ db目录中。所以在我的主要模型中,当我说:
class Plot < ActiveRecord::Base
establish_connection :development
set_table_name "stock_test"
set_primary_key :id
一切工作都很好,很棒。然而,当我将其更改为:
establish_connection :sqlite_test
set_table_name "plots"
,并尝试通过Rails的控制台访问该数据库,我得到一个错误说:
>>ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
我不知道这是为什么,因为database.yml文件显然确定了一个适配器? 当我在我的模型中手动完成时,一切都按照它应该的那样工作。
class Plot < ActiveRecord::Base
establish_connection(:adapter => "sqlite3", :database => "db/sqlite_test.sqlite3", :pool => 5)
为什么这一切工作时,我手动指定什么在database.yml,但不是当我只使用database.yml引用?
谢谢!
如果你有两个'开发:'不同的键/值? – vol7ron 2013-04-23 18:42:09