2017-07-17 2 views
0

Ich verwende diesen Befehl replizieren 100MB DatenbankMögliche Couch Datenbank mit illegalem Namen

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"}' 

ich replizieren kann nicht zu replizieren, weil CouchDB die Quelldatenbanknamen enthält ungültige Zeichen sagt. Ich kann verstehen, dass CouchDB-Leute den Benutzer davon abraten, einen schlechten Datenbanknamen zu erstellen, aber das Lesen davon ist kein Nachteil.

Ich bin kein Administrator der Quelle CouchDB, also habe ich versucht, Datenbank als JSON zu exportieren und dann in neue Datenbank zu massen. Aber ich traf {"error":"bad_request","reason":"Missing JSON list of 'docs'"}. Obwohl ich versucht habe, die dump.json zu ändern, indem ich die Struktur zu {"docs": [...]} ändere.

Ich würde gerne wissen, gibt es eine andere Möglichkeit, diese Datenbank mit einem Unterstrich im Namen zu replizieren?

Antwort

0

Ich habe das Problem mit einem Client - PouchDB gelöst. Hier ist der Code.

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) 

Das funktioniert ziemlich gut, also poste ich dies, um mit Ihnen allen zu teilen.

Verwandte Themen