Rails数据管理最佳实践

时间:2013-11-07 19:53:23

标签: ruby-on-rails ruby-on-rails-3.2 rails-migrations

我有一个与我正在合作的应用程序的情况,我不确定如何继续前进。

为了测试某些模型(报告),我们需要生产级数据 - 初始设置数据(调查)和用户数据(用户对调查的答案,有时不止一个用户)。使用生产环境中的脚本创建初始数据,以将数据加载到应用程序中。在我们的功能测试中,我们需要做同样的事情(或者有一个相当接近的传真),然后伪造一些用户数据(已知答案以测试报告计算和结构)。

我正在努力解决的是如何管理初始数据。随着开发的进展,这些数据可能会发生变化,我宁愿不在多个位置进行管理(初始加载的脚本,生产变更的迁移,工厂/夹具,以确保加载到测试中的数据反映了当前的实时数据等。 )。有没有最佳实践资源?夹具是否应该用于脚本的初始加载,然后可以由测试使用?我只是加载脚本来从我的测试中创建初始数据吗?我已经读过数据迁移很糟糕,我们试图避免它们,但是我如何在多开发人员环境中处理它,我创建的脚本可能不会由执行发布的开发人员执行(capistrano)。

思考?问题,评论,关注点?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

迁移有点烦人,但基于模式的数据库需要它们。

如果您没有查询这些字段,那么您可以将列保存为具有许多不同数据的JSON。

如果你想更进一步,他们是一个无架构的数据库,如MongoDB。我自己使用MongoDB和Mongoid gem,它就像activerecord一样。