load - para - cuál es la forma correcta de archivar documentos
CouchDB volcado para archivar y cargar desde archivo (5)
Como se dijo, debería usar "
y no el “
como argumento de la opción -H
Si es usuario de Linux o MacOSX, puede usar la herramienta couchdb-dump , que básicamente funciona en bash shell.
Vuelca la base de datos en un archivo local (archivo de texto ASCII), con el formato solicitado por http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API
Luego puede restaurarlo con la carga masiva de documentos o con la herramienta de restauración couchdb-dump incluida en el paquete.
Este es el enlace a la herramienta: couchdb-dump
Pero también puedes encontrar otras herramientas:
No puedo replicar entre dos servidores couchdb, por lo que me gustaría volcar para archivar desde un servidor y cargar desde un archivo al otro servidor.
Utilicé esta declaración para volcar y funcionó bien:
curl -X GET http://localhost:5984/<DATABASE_NAME>/_all_docs?include_docs=true > FILE.txt
Pero cuando usé esta declaración para cargar:
curl -d @FILE.txt -H “Content-Type: application/json” -X POST http://localhost:5984/<DATABASE_NAME>/_bulk_docs
falló así:
curl: (6) Could not resolve host: application; Host not found {"error":"bad_content_type","reason":"Content-Type must be application/json"}
¿Algunas ideas?
Como solución alternativa, puede usar las utilidades couchdb-load
y couchdb-dump
del proyecto couchdb-python .
El motivo de su error real es que está utilizando “
lugar de ASCII simple "
alrededor de su argumento -H
en la línea de comandos.
Sin embargo, la solución real aquí es simplemente copiar el archivo <DATABASE_NAME>.couch
directorio /path/to/var/lib/couchdb
de un servidor a otro.
Nolan del equipo de PouchDB hace algunas grandes herramientas. Estos funcionarán bien para volcar y cargar desde CouchDB (incluidos los archivos adjuntos):
Volcado / copia de seguridad:
https://github.com/nolanlawson/pouchdb-dump-cli
Cargar / Restaurar:
Puede usar la siguiente línea de comandos para convertir la salida del comando curl a la estructura "docs" que requiere _bulk_docs
:
curl -X GET ''http://localhost:5984/mydatabase/_all_docs?include_docs=true'' | jq ''{"docs": [.rows[].doc]}'' | jq ''del(.docs[]._rev)'' > db.json
jq es el nombre de un excelente procesador de línea de comandos muy útil (es decir, en esta situación).
Espero eso ayude.