Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 128CF97CF for ; Fri, 21 Oct 2011 14:47:20 +0000 (UTC) Received: (qmail 48697 invoked by uid 500); 21 Oct 2011 14:47:18 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 48660 invoked by uid 500); 21 Oct 2011 14:47:18 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 48652 invoked by uid 99); 21 Oct 2011 14:47:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Oct 2011 14:47:18 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of ryan.ramage@gmail.com designates 209.85.212.52 as permitted sender) Received: from [209.85.212.52] (HELO mail-vw0-f52.google.com) (209.85.212.52) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 21 Oct 2011 14:47:12 +0000 Received: by vws10 with SMTP id 10so4350429vws.11 for ; Fri, 21 Oct 2011 07:46:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=s/EIJRHjqNyBzpuQJeJZ3rZO4/iwxxwWQgMwOe7LSB0=; b=ZlCfPyKEYK0ekNWEyBCJLKsaoIWgGF0wSB7ulzUEcJMV0R49kM8fjZvhjj534K1rn2 w9KF72x0JP7wFjJIJwanlIr0IgvE/GLAVRXoQ1ak36WaZBumq1LGIeaDeCSIMXsrK55a cUV90b9YhXzRau0OuyitPnalxdKmmezlSDR9A= MIME-Version: 1.0 Received: by 10.52.73.166 with SMTP id m6mr14618033vdv.18.1319208411389; Fri, 21 Oct 2011 07:46:51 -0700 (PDT) Received: by 10.220.195.195 with HTTP; Fri, 21 Oct 2011 07:46:51 -0700 (PDT) In-Reply-To: References: Date: Fri, 21 Oct 2011 08:46:51 -0600 Message-ID: Subject: Re: data migration / ETL From: Ryan Ramage To: user@couchdb.apache.org Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org There is Costco: https://github.com/harthur/costco Or Recline: https://github.com/maxogden/recline Not sure if those will have enough horsepower for you though. After reading your question again, it seems to be more about release management...the versions of software using docs in couch, and managing the document 'schema'. In the sql world I have used liqibase [http://www.liquibase.org/manual/home]. Although I find schema-less much more relaxing, I could see some cases where a tool like liquibase for couchdb would be useful. Ryan On Fri, Oct 21, 2011 at 8:20 AM, Sean Copenhaver wrote: > I want to say someone announced a basic utility that safely rolls through > all docs in the database and performs a task. I think it was a node.js > command line tool and you provided it a script to run on each document. N= ot > positive. > > If you have a view that gives you all the documents based on a version > attribute, then you could roll through all documents in the view for a > particular version (null, 1.1, etc) perform your ETL process, update the > version, and store them back. Eventually you should have no documents wit= h a > version below the one you are migrating to. Only concern is if you run in= to > conflict because someone updates the doc while you are migrating it, but = I > suppose in this situation you would follow your normal conflict resolutio= n > then migrate the resulting doc. > > Anyway just some thoughts off the top of my head. I hope that helps some. > > On Tue, Oct 18, 2011 at 9:13 AM, daniel williams > wrote: > >> My organization has run into a handful of issues around migration of >> structures of documents from varying versions of software built upon >> couchdb. =A0Has anyone in the nets come up with a good solution for >> structural >> changes of documents that coincide with major/minor/maintenance releases= of >> software leverage couchdb? =A0perhaps a couch ETL? >> >> Thanks. >> >> dan >> > > > > -- > =93The limits of language are the limits of one's world. =93 - Ludwig von > Wittgenstein > > "Water is fluid, soft and yielding. But water will wear away rock, which = is > rigid and cannot yield. As a rule, whatever is fluid, soft and yielding w= ill > overcome whatever is rigid and hard. This is another paradox: what is sof= t > is strong." - Lao-Tzu > --=20 Twitter: @eckoit