2012-06-29 13 views
6

¿Cómo controlo la versión de mis funciones de mapa/reducción para CouchDB? Me gustaría poder incluirlos en git/github para que mis compañeros de equipo puedan aplicarlos fácilmente en sus entornos de prueba locales. Conozco las funciones de réplica en CouchDB, pero me gustaría mantener las vistas de db con la fuente del proyecto.Versioning couchdb map-reduce functions

+0

No entiendo la pregunta. ¿No es cierto que las vistas están definidas en algún lenguaje de alto nivel, javascript u otro? En ese caso, puede almacenarlos en un archivo fuente normal y versionarlos como lo haría con cualquier versión del módulo fuente. El único truco restante es cómo obtenerlos de la fuente del archivo de texto y en CouchDB. Pero esto también es fácil: suponiendo que sean funciones de Javascript, si tiene un motor de Javascript, puede obtener la representación de cadena de las funciones, JSONificarlas y cargarlas en CouchDB dinámicamente con un PUT en la URL adecuada. – Cheeso

+0

Estaba yendo por este camino, pero parece que es más complejo de lo necesario. Idealmente, me gustaría simplemente importar/exportar el JS para la vista desde el sistema de archivos para poder comprometerme con git. –

Respuesta

5

Lo que necesita es una de las (muchas) herramientas de couchapp. Básicamente, todos asignan un conjunto de archivos js en varias estructuras a la disposición del documento de diseño utilizado por CouchDB, y generalmente proporcionan algunos mecanismos simples de inserción y extracción para que entren y salgan.

Puede iniciar git en la carpeta principal &, asegúrese de versionar los documentos de diseño cargados.

Hay una muy buena explicación http://mindeavor.com/blog/the-anatomy-of-a-couchapp simplemente ignore el vendedor/discusión por el momento, no es necesario.

Si usted es más un chico JS/nodo intente https://github.com/mikeal/node.couchapp.js/ o kanso http://kan.so/ es impresionante pero hace mucho más; Es posible que necesite más Couch-fu antes de ingresar. Sin embargo, es excelente, puede usar kanso push para comenzar.

Si solo quieres comenzar, utiliza couchapp http://github.com/couchapp/couchapp que es una herramienta de python, probablemente la original.

+0

¡Gracias por esto! Algunos de sus enlaces parecen haber muerto, sin embargo. Kanso parece que debería ir a https://kanso.app.medicmobile.org/ ahora y el enlace de explicación podría ir a http://web.archive.org/web/20121024014059/http://mindeavor.com/ blog/the-anatomy-of-a-couchapp - Tuiteé al autor (@mindeavor) para preguntar si había una mejor URL. –

1

Nosotros (y estoy seguro de que la mayoría de los equipos) hacen exactamente lo que usted ha dicho. Mantenemos nuestros puntos de vista, etc., en nuestro árbol fuente y nos comprometemos con git. Nuestra aplicación es una aplicación de nodos, por lo que es particularmente sencillo para nosotros ingerir la fuente y guardarla en la base de datos, pero esto es bastante simple en cualquier idioma: solo invente un esquema de nombres, almacene los archivos JS en un archivo en particular. coloque y lea los archivos y almacene los datos en la estructura de clave apropiada en el _design/document apropiado en su base de datos.