我正在尝试向使用多个数据库的 rails (v 3.1.3) 应用程序添加测试装置。
该夹具应仅应用于应用程序自己的测试 sqlite 数据库:
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
其他 2 个数据库是 mysql,也有名为 %dbname%_test 的测试实例,并且已经填充了测试数据。
添加夹具后,我的所有测试都失败并显示“ActiveRecord::StatementInvalid: Mysql::Error: Unknown column”错误,因为 rails 试图将夹具应用到
mysql 数据库之一。
有没有办法指定夹具用于哪个数据库?
最佳答案
Fixtures-init 代码(在 activerecord-3.2.6/lib/active_record/fixtures.rb 中)有一个错误:在“初始化”方法中,在第 544 行的“else”中,@connection 需要初始化为@model_class。联系。 (没有那个,@connection 只是指向错误数据库的“连接”。)
关于ruby-on-rails - 具有多个数据库的 Rails 装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8326514/