可以使用非法名称复制沙发数据库

时间:2017-07-17 10:09:48

标签: couchdb

我使用此命令复制100mb数据库

curl -H 'Content-Type: application/json' \
   -X POST http://localhost:5984/_replicate \
   -d '{"source": "http://example.com:5984/bad_name_with_underscore", "target": "good_name"}'

我无法复制,因为CouchDB说源数据库名称包含非法字符。 我可以理解CouchDB人员不鼓励用户创建错误的数据库名称,但从中读取它并没有坏处。

我不是源CouchDB的管理员,所以我尝试将数据库导出为JSON,然后批量放入新数据库。但我遇到了{"error":"bad_request","reason":"Missing JSON list of 'docs'"}。虽然我试图通过将结构更改为{"docs": [...]}来修改dump.json。

我想知道,有没有其他方法可以使用名称中的下划线复制此数据库?

1 个答案:

答案 0 :(得分:0)

我通过使用客户端解决了这个问题--PouchDB。这是代码。

const PouchDB = require('pouchdb')
const source = new PouchDB("http://example.com:5984/bad_name_with_underscore")
source.replicate.to("http://localhost:5984/good_name")
  .on('complete', console.log)
  .on('error', console.error)

这很有效,所以我发布这篇文章与大家分享。