Couchdb 如何仅复制设计文档?

Couchdb 如何仅复制设计文档?,couchdb,Couchdb,因此,我想将我对设计文件所做的一些更改从开发复制到生产(也就是说,我想部署一些东西) 我有点困惑,因为我的研究没有得出任何具体的结果。虽然这是一个非常明显的用例 我遗漏了什么吗?您可以使用“过滤复制”(有关详细信息,请参阅) 基本上,您将为设计文档提供一个返回true的函数,如 function(doc, req) { return "_design/" === doc._id.substr(0, 8) } 然后将“筛选器”:“ddocname/filtername”添加到您的复制请求正文

因此,我想将我对设计文件所做的一些更改从开发复制到生产(也就是说,我想部署一些东西)

我有点困惑,因为我的研究没有得出任何具体的结果。虽然这是一个非常明显的用例


我遗漏了什么吗?

您可以使用“过滤复制”(有关详细信息,请参阅)

基本上,您将为设计文档提供一个返回true的函数,如

function(doc, req) {
  return "_design/" === doc._id.substr(0, 8)
}

然后将“筛选器”:“ddocname/filtername”添加到您的复制请求正文中。

您可以指定要复制的文档ID,而无需编写筛选器。发布复制文档(或命令),如下所示:


我将设计文档作为.js文件存储在磁盘上。然后我使用更新服务器上的设计文档

npm install -g couchdb-update-views
couchdb-update-views --config /path/to/config.json --docsDir /path/to/design/docs/directory/

在这种情况下,您可能只想复制JasonSmith所示的命名ID,而不执行更一般的复制。在我的解决方案中,您必须知道文档ID。在他的书中,CouchDB为你找到了答案。我认为在实践中,人们确实知道他们的设计文档ID,但是我发现过滤器非常慢。在大多数情况下,使用设计文档的名称更好。这非常适合每个用户的数据库模式。特别是如果您已经在进行筛选复制以填充新用户数据库,这也是更快的解决方案。谢谢确保在url“target”:“”中的target pass user/pass下使用admin user成功复制,只有管理员才能创建设计文档
npm install -g couchdb-update-views
couchdb-update-views --config /path/to/config.json --docsDir /path/to/design/docs/directory/