我使用此命令复制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。
我想知道,有没有其他方法可以使用名称中的下划线复制此数据库?
答案 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)
这很有效,所以我发布这篇文章与大家分享。