【问题标题】:PouchDB - start local, replicate laterPouchDB - 本地启动,稍后复制
【发布时间】:2015-07-28 20:04:03
【问题描述】:

如果我们总是先在本地创建和填充 PouchDB 数据库,然后稍后使用 Cloudant 等集中式 CouchDB 服务同步/验证,是否会产生任何重大问题?

考虑这个简化的场景:

  • 您正在构建住宿预订服务,例如酒店搜索或 airbnb
  • 您希望人们无需创建帐户即可收藏/收藏属性,并将使用 PouchDB 存储此列表
    • 即这样做的目的是不让他们在非绝对必要时创建一个帐户来打断他们的流程
  • 如果用户希望选择加入,他们可以稍后创建一个帐户并接收与“服务器端”数据库同步的凭据

在第 3 步中,一旦我创建了每个用户的 CouchDB 数据库服务器端并分配凭据以传回浏览器以进行同步/复制,如何将其与已创建的 PouchDB 数据链接起来?即

  1. PouchDB 能否以某种方式重用现有数据库进行同步,从而将所有现有数据推送到托管的 CouchDB 数据库,或者......
  2. 我们是否需要创建一个新的 PouchDB 数据库,然后将所有文档从现有(非复制)复制到这个新的(复制),然后删除现有的?

在我们开始支持非复制 PouchDB 的第一阶段之前,我想确保自己没有陷入我没有想到的任何角落。

【问题讨论】:

    标签: couchdb replication pouchdb cloudant


    【解决方案1】:

    这取决于您要从服务器同步哪种数据,但一般来说,您可以将预先存在的数据库复制到包含现有文档的新数据库中,只要这些文档 ID 不冲突即可。

    因此,星级模型的最佳想法可能是在客户端创建具有'star_<timestamp>' 之类的 ID 的文档,以确保它们不会与任何内容发生冲突。然后你可以用 map/reduce 函数聚合它们。

    【讨论】:

    • 谢谢。在第一次同步之前不会在“服务器端”生成内容,因此没有冲突的风险。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多