rails 3 establish_connection不适用于切换数据库

时间:2012-12-03 21:33:49

标签: ruby-on-rails database

我需要在我的应用中使用两个不同的数据库。我找到了一个简单的例子:

http://pullmonkey.com/2008/4/21/ruby-on-rails-multiple-database-connections/

使用establish_connection,但它似乎不起作用。为了测试切换数据库,我有:

  class User < ActiveRecord::Base
    establish_connection :test
    # attr_accessible :title, :body
  end

但我收到错误:“未捕获异常:数据库配置未指定适配器”。

这是我的database.yaml:

development:
  adapter: mysql2
  encoding: utf8
  database: foo
  username: bar
  host: foo.com
  password: foobar

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

我正在开发模式下运行此测试。任何想法为什么它不能切换?感谢。

1 个答案:

答案 0 :(得分:0)

首先,“pulmonkeyexample”是在拥有多个数据库时使用数据库标签,而不是三个标准数据库 - “开发,测试和生产”。启动rails应用程序时,可以使用“-e”选项告诉rails启动应用程序的模式 - test,dev或prod。根据应用程序启动的模式,Rails将自动使用“database.yml”文件中的相应数据库连接。因此,从模型中删除该行。再想一想,即使你写了它也应该有用,只要有一个带有用户表的测试数据库。