2017-07-17 27 views
0

我使用这个命令来复制一个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,然后批量put到新的数据库。但我遇到了{"error":"bad_request","reason":"Missing JSON list of 'docs'"}。虽然我曾尝试通过改变结构来{"docs": [...]}修改dump.json。

我想知道,有没有其他的方式与一些在名称中使用下划线我可以复制这个数据库?

回答

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) 

这工作得很好,所以我发布这个与大家分享。