【发布时间】:2018-03-14 11:15:19
【问题描述】:
我有一个运行 peruser 数据库配置的 CouchDb 实例。
生成的每个用户数据库(当用户添加到_users 数据库时)需要具有相同的设计文档以及视图/列表逻辑等。
在创建数据库时将设计文档添加到数据库的实际方法是什么?是否只是在成功的用户创建请求后添加它们?还是在 CouchDb 中有更优雅的方式来做到这一点?
【问题讨论】:
我有一个运行 peruser 数据库配置的 CouchDb 实例。
生成的每个用户数据库(当用户添加到_users 数据库时)需要具有相同的设计文档以及视图/列表逻辑等。
在创建数据库时将设计文档添加到数据库的实际方法是什么?是否只是在成功的用户创建请求后添加它们?还是在 CouchDb 中有更优雅的方式来做到这一点?
【问题讨论】:
没有初始化新创建的用户数据库的机制,您应该将其包含在您的用户创建逻辑中。 如果你想解耦用户创建和db初始化,我建议你探索以下策略
1 - 创建一个模板数据库,并在其上放置应应用于每个用户数据库的设计文档
2 - 连续监听 _db_updates 端点,将通知数据库级别的事件。 This 图书馆可以帮助你。
3 - 创建与用户数据库名称模式匹配的数据库时,您可以使用 _replicate 端点触发从模板数据库到新创建的数据库的复制。
【讨论】:
如果您打算按照@Juanjo Rodriguez 的建议使用 Follow npm 模块,请考虑使用 Cloudant 的版本。 Iriscouch 的版本(@Juanjo Rodriguez 指出的版本)已经过时了。例如,它不支持 CouchDB v2.x 以及其他问题。最近几天我与 Cloudant 的团队一起改进了这一切,他们昨天刚刚在这里发布了更新的 npm 包:https://www.npmjs.com/package/cloudant-follow?activeTab=versions
0.17.0-SNAPSHOT.47 版本启动了我们开发的补丁,所以不要使用0.16.1(这是官方最新的)。
您可以在此处阅读有关我们修复的问题的更多信息:
https://github.com/cloudant-labs/cloudant-follow/issues/54
【讨论】: