ruby-on-rails - 具有多个数据库的 Rails 装置

标签 ruby-on-rails fixtures multiple-databases

我正在尝试向使用多个数据库的 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/

相关文章:

ruby-on-rails - Rails fixture 中的更改不会传播到关联

symfony - 在灯具中执行 Symfony 4 自定义命令

php - symfony2 - 在存储库或类中使用多个连接

mysql - 一次查询多个数据库

ruby-on-rails - Ruby on Rails 和 Cocoa

java - 如何管理大型项目验收测试的测试数据治具?

ruby-on-rails - 验证失败时,Rails 3 fields_for 范围会删除字段

php - 是否可以同时对不同服务器上的两个不同数据库(MSSQL 和 MySQL)执行 PHP 查询?

javascript - Rails 和 JavaScript 之间的数组

css - 在 Ruby on rails 错误中使用 Bootstrap