为向前兼容而设计的 PouchDB

PouchDB designing for forwards compatibility

我开始使用 PouchDB 并寻找一种解决方案,它可以让我在将来更改我的模式时不会有太大的痛苦,所以如果我已经考虑到所有事情,我现在就不必担心了。我正在寻求计划我可能需要更改为我没有预测到的结构的情况(例如:假设我从单个 "wish list" 的概念开始但后来支持多个命名列表) .

我的高级想法是将一些具有内部意义的 "schema version" 保存到每个 PouchDB 实例中。然后我的客户端 JS 可以读取它,如果有必要进行数据迁移,它可以在继续之前执行该操作。有什么 "best practice" 方法可以做到这一点吗?

有一个名为 pouchdb-migrate 的插件,您可以使用它来完成此操作。保留整数版本很好;您还可以使用 "duck versioning"(例如 "I'm adding a lastName field in v2, so if there's no lastName, then the document must be v1")。