如何使用 ruby​​-on-rails 固定装置设置不属于 Rails 应用程序数据库的(外部)数据?

2024-04-03

根据我的要求,我创建了用于查询某些数据的外部数据库(与 Rails 应用程序使用的数据库不同)的模型。

我正在尝试围绕这些模型编写测试,并希望将“样本测试数据”与实际测试分开。

我以为我可以将数据放入 yml 文件并将其加载到哈希中,但它确实有效:(

  • 将示例测试数据添加到夹具文件名“external_database.yml”中
  • 将以下代码放入测试文件中的设置中

ext_data = YAML.load_file(Rails.root.to_s + "/test/fixtures/ext_data.yml")

  • 但我遇到了以下错误

1) Error: test_should_errorout_for_invalid_market_zip(ExtDBTest): ActiveRecord::StatementInvalid: Mysql::Error: Table 'rails_app_db.ext_data' doesn't exist: DELETE FROM ext_data

  1. 做我想做的事情的最好方法是什么?

我想您的问题是该外部数据库的架构不包含在您的 schema.rb 文件和/或迁移中。这些用于在运行测试之前设置测试数据库。

因此,尝试将这些装置写入不存在的表中 - 其结果如上所示。

单元测试中的多个数据库连接通常很痛苦。考虑为外部依赖项的数据创建一个 sqlite 文件,并配置您的测试环境以使用该文件或它的副本,以防您需要更改数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ruby​​-on-rails 固定装置设置不属于 Rails 应用程序数据库的(外部)数据? 的相关文章

随机推荐