【发布时间】:2009-03-17 14:40:21
【问题描述】:
我有几个脚本可以生成和收集大量数据,我需要这些数据来为我的数据库播种,并在将来向其中添加大量数据。将大量关系数据作为种子数据和在生产期间间歇性导入到 Rails 数据库的最佳方法是什么?
我尚未确定脚本的输出格式,但数据结构很大程度上反映了我的 rails 模型,并包含我希望导入保留的 has_many 关联。
我在 Google 上搜索了一下,看到了 ar-extensions 和 seed_fu 以及使用固定装置的想法。
使用 ar 扩展,所有示例似乎都是简单的 csv 导入(可能来自似乎是其主要用例的表转储),没有提及处理关联或避免重复更新。就我而言,我的脚本中没有 id、外键或连接表,所以这似乎对我不起作用,除非我自己准备好处理这种复杂性。
使用 seed_fu,它看起来可以处理数据创建的关系方面,但仍然需要我指定 id(你怎么知道哪些在生产中可用?)并将代码与数据混合。
Fixtures 也有相同的 id 问题,尽管现在它需要命名对象(我可能最终会使用数字作为名称)而且我不确定如何避免意外重复记录。
或者我最好先将我的数据放入本地 sqlite db,然后使用直接表转储技术?
【问题讨论】:
标签: ruby-on-rails activerecord