Come faccio a controllare la versione della mia mappa/ridurre le funzioni per CouchDB? Mi piacerebbe essere in grado di controllarli in git/github in modo che i miei compagni di squadra possano facilmente applicarli ai loro ambienti di test locali. Conosco le funzionalità di replica in CouchDB, ma mi piacerebbe mantenere le viste db con la fonte per il progetto.Versioning couchdb map-reduce functions
risposta
Quello che ti serve è uno dei (molti) strumenti di couchapp. Fondamentalmente, tutti mappano una serie di file js in varie strutture al layout del documento di progettazione usato da CouchDB, e di solito forniscono alcuni semplici meccanismi push/pull per farli entrare e uscire.
È quindi possibile avviare init nella cartella principale & assicurandosi di eseguire il controllo della versione dei documenti di progettazione caricati.
C'è una buona spiegazione http://mindeavor.com/blog/the-anatomy-of-a-couchapp ignorare il venditore/discussione per il momento, non è necessario.
Se sei più di un ragazzo JS/nodo prova https://github.com/mikeal/node.couchapp.js/ o kanso http://kan.so/ è fantastico ma lo fa molto di più; potresti trovare che hai bisogno di più Couch-fu prima di entrarci. È eccellente, tuttavia, è possibile ottenere utilizzando solo kanso push
per iniziare.
Se si desidera iniziare, utilizzare couchapp http://github.com/couchapp/couchapp che è uno strumento python, probabilmente quello originale.
Grazie per questo! Alcuni dei tuoi link sembrano essere morti, però. Sembra che Kanso dovrebbe andare su https://kanso.app.medicmobile.org/ e il link di spiegazione potrebbe forse andare su http://web.archive.org/web/20121024014059/http://mindeavor.com/ blog/the-anatomy-of-a-couchapp - Ho twittato all'autore (@mindeavor) per chiedere se c'era un URL migliore. –
Noi (e sono sicuro che la maggior parte delle squadre) fanno esattamente come hai detto tu. Manteniamo le nostre opinioni, ecc., Nella nostra struttura dei sorgenti e ci impegniamo a cedere. La nostra app è un'app di nodo, quindi è particolarmente semplice per noi scovare l'origine e salvarli nel DB, ma questo è abbastanza semplice in qualsiasi lingua: basta creare uno schema di denominazione, archiviare i file JS in un particolare posizionare e leggere i file e archiviare i dati nella struttura della chiave appropriata nell'appropriato _design/document
nel DB.
Non capisco la domanda. Non è il caso che le viste siano definite in qualche linguaggio di alto livello, javascript o altro? In tal caso è possibile archiviarli in un normale file sorgente e modificarli come se si trattasse di qualsiasi modulo sorgente. L'unico trucco rimanente è come ottenerli dall'origine del file di testo e in CouchDB. Ma questo è anche facile: supponendo che siano funzioni Javascript, se hai un motore Javascript, puoi ottenere la rappresentazione delle stringhe delle funzioni, JSONify e caricarle in CouchDB dinamicamente con un PUT nell'URL appropriato. – Cheeso
Stavo seguendo questa strada, ma sembra che sia più complessa di quanto non fosse necessario. Idealmente, mi piacerebbe solo importare/esportare il JS per la vista dal file system in modo che possa impegnarmi a git. –