如何在Rails应用程序的测试数据库中创建持久表?

我有一个参考TMY3气象数据集的rails应用程序,这是针对1000多个不同站点的大量不同的每小时天气观测。

我下载了整个数据集,并将我需要的列提取到一个由站点索引的本地表中,这使得它在开发和生产中都很好用。

但是,索引需要5分钟,这使得每次加载测试都会非常痛苦。 这个表永远不会改变,所以我想把它加载到我的测试环境中,然后把它留在那里运行我的其余测试。 我所有的其他模型和表格都是标准的轨道交易,可根据需要进行分解或模拟。

有任何想法吗?

您可能会看到有关db:test:prepare的这个问题是否适用于您的情况。

对于您在测试时不需要拆除的模型,请将其放在单独的数据库中以进行测试。 只清除从database.yml加载的测试数据库并从开发数据库的模式重建。

class PersistModel < ActiveRecord::Base PersistModel.establish_connection( :adapter => "sqlite3", :database => "db/persist.sqlite3" ) end 

这个类永远不会清除它的数据库。

您可能会发挥创意并拥有建立不同连接的真实模型的测试版本。

 class WeatherTest < Weather WeatherTest.establish_connection( :adapter => "sqlite3", :database => "db/weather.sqlite3" ) end 

这样,来自“真实”模型的所有function都可用于您的测试版本。

没有尝试过,但是其中一个缓存插件可以提供解决方案吗? 高级缓存 – 来自Rails指南