Mostrando entradas con la etiqueta CouchDB. Mostrar todas las entradas
Mostrando entradas con la etiqueta CouchDB. Mostrar todas las entradas

lunes, 24 de julio de 2017

Purge database in couchdb

Resumen:
Primero crea el filtro en la db origen
{
   "_id": "_design/filters",
   "filters": {
       "deletedfilter": "function(doc, req) { return !doc._deleted; };"
   }
}
Luego crea un nuevo doc en la bd _replicator:

{
   "_id": "replicateCleanup",
   "source": "original_database",
   "target": "http://admin:password@localhost:5984/original_database_replica",
   "create_target": true,
   "filter": "filters/deletedfilter",
   "owner": "admin",
   "continuous": true
}

Para más info:
https://eclipsesource.com/blogs/2015/04/20/how-to-finally-delete-documents-in-couchdb/

viernes, 17 de marzo de 2017

miércoles, 15 de marzo de 2017

¿Como aprender CouchDB rápidamente?

Aquí adjunto el mejor material que he conseguí cuando estaba aprendiendo CouchDB. Te recomiendo que sigas el orden indicado

Doc oficial:
http://guide.couchdb.org/editions/1/es/

Charla. Te ayudará a entrar en el entorno y ver de que se trata
https://www.youtube.com/watch?v=XeceLYuQED8&t=1298s

Te enseña a instalarlo y haces unas pequeñas practicas
https://www.youtube.com/watch?v=_F-bt79QBSc&t=75s

Curso En Udemy 100% Gratuito (Si sigues el link)
https://www.udemy.com/learn-nosql-database-design-with-couchdb/?couponCode=BBHF50FREE


Curso en Pluralsight
 (Gratis si sigues estos pasos para obtener tu cuenta: https://absolute-sharepoint.com/2015/12/free-pluralsight-6-month-subscription.html)
https://www.pluralsight.com/courses/practical-couchdb-developers

Libro: (La guia definitiva de CouchDB)
https://mega.nz/#!44dGBaoY!8r5VDXmuKGmrQE_car-qdJRzIffy7XLc-ATML6HfeQs

Libro: OReilly Writing And Querying MapReduce Views In CouchDB
https://mega.nz/#!R5swmCYS!ZET_kyUw12ZclKV18_NmoZubE_n_g-g9xnsJwJJxeh4


miércoles, 1 de marzo de 2017

Clone DB in CouchDB

A veces la replicación/clonación por Futon falla y hay que hacerlo via consola:
Ej:

curl -H 'Content-Type: application/json' -X POST http://admin:pass@192.168.1.44:5984/_replicate -d ' {"source": "http://admin:pass@192.168.1.44:5984/base_de_datos", "target": "http://admin:pass@192.168.1.44:5984/base_de_datos_clon", "create_target": true, "continuous": false} '

jueves, 19 de enero de 2017

Filter with array keys in CouchDB

Imaginemos que al consultar una view nos arroja los siguientes keys:

["account:1","receptor:1","line:1"]
["account:1","receptor:1","line:2"]
["account:2","receptor:1","line:1"]
["account:2","receptor:2","line:1"]

----------------------------------------------------------------------------------
Ejemplo 1:
Si queremos filtrar todos los keys en donde sus primeros elementos sean "account:1","receptor:1" entonces podemos usar los siguientes filtros:

startkey=["account:1","receptor:1"]
endkey=["account:1","receptor:1", {}]

Note el wildcard {}

Nos retornaría:

["account:1","receptor:1","line:1"]
["account:1","receptor:1","line:2"]

----------------------------------------------------------------------------------
Ejemplo 2:
Si queremos filtrar todos los keys en donde sus últimos keys sean "receptor:1","line:1" lamento decirte que no se puede. La explicación está aquí:

 http://ryankirkman.com/2011/03/30/advanced-filtering-with-couchdb-views.html

miércoles, 28 de diciembre de 2016

Corregir error "Missing JSON list of 'docs'" CouchDB

Intentando importar una BD en formato json en couchdb usando el comando:

curl -d @db.json -H "Content-Type:application/json" -X POST http://192.168.3.2:5984/prueba/_bulk_docs

Me saltó el siguiente error: {"error":"bad_request","reason":"Missing JSON list of 'docs'"}




Este error se produce por un conflicto de versiones.
Para arreglarlo debes modificar el fichero json:
y cambiar la primera linea "{"total_rows...." por "{"docs": [" como se muestra en la siguiente imagen


Luego guardar el fichero y volver a ejecutar
curl -d @db.json -H "Content-Type:application/json" -X POST http://192.168.3.2:5984/prueba/_bulk_docs

La salida debe ser algo como esto:




martes, 8 de noviembre de 2016

Corregir error "eacces" al crear usuario en CouchDB

Cuando intenté crear mi primer usuario administrador en CouchDB tuve un problema:

Al realizar la petición usando curl, para crear un usuario "admin" con password 123 me arrojaba el siguiente error:



Esto ocurre porque el directorio de CouchDB no tiene los permisos bien configurados. Para arreglarlo basta con ejecutar lo siguiente

chown -R couchdb:couchdb /usr/local/{lib,etc}/couchdb /usr/local/var/{lib,log,run}/couchdb

Luego reinicias couch

service couchdb restart

y ahora si podrás crear el nuevo usuario


Hacer backup de una base de datos CouchDB

¿Que quiero hacer?
Un backup de una base de datos en CouchDB para moverla de una maquina (en forma de fichero).

En Centos 7 las bases de datos de couchdb se guardan como ficheros que tienen el mismo nombre de la bd pero con la extensión .couch. La ruta es /usr/local/var/lib/couchdb/.

En fedora 24 la ruta es /var/lib/couchdb

Basta con copiar el fichero de ese directorio y pegarlo en el mismo en la otra maquina

En este caso vamos a copiar una bd llamada "books" en nuestra maquina


Primero le damos permiso al directorio

chmod 777 /usr/local/var/lib/couchdb

Luego pegamos el fichero


y por último arreglamos el tema de los permisos (si couchdb no es el dueño del directorio entonces no arrancará)

chown -R couchdb:couchdb /usr/local/{lib,etc}/couchdb /usr/local/var/{lib,log,run}/couchdb

y listo *.* así de fácil


miércoles, 2 de noviembre de 2016

Instalar CouchDB en Fedora 24 / 23

Basta con ejecutar el siguiente comando como root:

dnf install autoconf autoconf autoconf-archive automake ncurses-devel curl-devel erlang-asn1 erlang-erts erlang-eunit erlang-os_mon erlang-xmerl help2man js-devel libicu-devel libtool perl-Test-Harness couchdb


Para que arranque al inicio:

/etc/init.d/couchdb start

chkconfig couchdb on

Luego debes abrir el fichero /usr/local/etc/couchdb/local.ini

y el segmento http debe quedar así:
[httpd]
port = 5984
bind_address = 0.0.0.0

reinicias y luego entra en la siguiente dirección

localhost:5984



Si todo va bien deberías ver algo como la imagen de arriba