4.5. 查看建议

下面是一些使用CouchDB(基于JavaScript)视图的提示和技巧。

4.5.1. 在实时环境中部署视图更改

可以更改视图的定义,构建索引,然后使这些更改生效,而不会导致应用程序停机。实现这一点的诀窍在于CouchDB的JavaScript视图索引文件基于设计文档的内容而不是其名称, _id 或修订版。这意味着具有相同视图代码的两个设计文档将共享相同的磁盘视图索引文件。

这是一个有效的例子,假设 /db/_design/ddoc 需要更新。

  1. 将旧设计文档上载到 /db/_design/ddoc-old (或复制文档)如果您希望在出现问题时使用简单的方法回滚。这个 ddoc-old 文档将引用已为其生成的相同视图索引 _design/ddoc .
  2. 将更新后的设计文档上载到 /db/_design/ddoc-new .
  3. 查询新设计文档中的视图以触发辅助索引生成。您可以通过 /_active_tasks 或者,通过端点 福克斯顿 网络界面。
  4. 索引生成完成后,将更新的设计文档重新上载到 /db/_design/ddoc (或复制文件)。这个 ddoc 文档现在将引用已为其生成的相同视图索引 _design/ddoc-new .
  5. 删除 /db/_design/ddoc-new 和/或 /db/_design/ddoc-old 由你决定。别忘了触发 视图清理 删除后回收磁盘空间 ddoc-old .

这个 COPY HTTP谓词可用于使用单个命令复制设计文档:

curl -X COPY <URL of source design document> -H "Destination: <ID of destination design document>"