Rails使用迁移的概念来使用ActiveRecord API处理模型更改.
CouchDB使用JSON(嵌套映射和数组)来表示其模型对象.
到目前为止,在使用CouchDB时,我没有看到识别文档结构何时发生变化的好方法(除了作为开发人员受到纪律处分),或者用于将文档从旧模型迁移到新模型.
是否存在现有功能,或者您是否拥有在CouchDB中处理模型更改的最佳实践?
RDBMS去脑洗脑的时间.:)
couchdb的无架构设计的最重要的一点是直接旨在防止迁移的需要.对象的JSON表示使得简单地对对象进行输入变得容易.
例如,假设您有一个博客类型的Web应用程序,其中包含帖子以及人们在博客中存储的任何奇特内容.你的帖子文档有像作者,标题,创建的等字段.现在你来自己想一想,"我应该跟踪我发布帖子时月亮的相位......"你可以开始添加moon_phase作为新帖子的属性.
如果你想完成,你会回去并将moon_phase添加到旧帖子,但这不是绝对必要的.
在您的视图中,您可以访问moon_phase作为属性.并且它将为null或导致异常或其他内容.(不是JS专家,我认为null是正确答案)
事情是,它并不重要.如果你想改变一些东西就改变它.虽然确保您的观点了解这种变化.根据我的经验,这并不需要太多.
此外,如果你真的是偏执狂,你可以存储一个版本/类型属性,如:
{ _id: "foo-post", _rev: "23490AD", type: "post", typevers: 0, moon_phase: "full" }
希望有所帮助.