我是否应该在更改模型时创建AR迁移?我正在使用Mongoid和MongoDB,所以我没有看到任何好处.我能想到的唯一好处是
重命名一个字段 – 但我也可以使用小脚本.那甚至会起作用吗?我的直觉告诉我,我不需要迁移,但我想听听有更多经验的人的意见.
什么是最佳做法?我应该使用MongoDB进行迁移吗?
由于MongoDB没有(如2.6)提供任何服务器端模式实施,因此不严格要求数据迁移脚本.这对于开发速度特别有用.
但是,如果您希望实现良好的“数据卫生”并确保跨不同部署的一致性,那么为生产数据创建迁移可能仍然有意义.
例如:
>删除未使用的字段
>添加新的必填字段
>设置默认值
>重命名字段
>加载所需的数据/装置
>确保所需的索引
您当然可以选择将上述任何内容作为一次性脚本或在应用程序代码中处理异常情况.例如,您可以懒惰地添加缺少的字段或默认值,因为从数据库加载文档以进行编辑.
特别是对于Mongoid,您可能想要尝试mongoid_rails_migrations宝石.