incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Smith <...@proven-corporation.com>
Subject Best way to "migrate" (a la Rails) Couch documents
Date Fri, 06 Mar 2009 18:05:23 GMT
Hi, list.

While I am happy to be learning Couch for a new project, I am still 
unsure about some tricks that I used with Django and Rails, such as data 
migration:

For example, suppose I change my code and instead of using a string 
timestamp in my documents, I would prefer a hash with "day", "month", 
and "year" keys.  When I deploy the new code into production, obviously 
I want the data structures to change for all existing documents.

So my question is: What is the preferred or recommended method to do 
this?  So far, the only thing I can think of is to write some client 
code to do the following:

1. Fetch _all_docs
2. For each document that requires changing, modify it
3. Either PUT the new documents up one by one, or POST them to 
_bulk_docs, depending on the situation.

This solution doesn't strike me as particularly horrible, but I was 
wondering if there is a better way, perhaps something server-side.  I 
have looked around couchdb-python, couchrest, and couchapp but i don't 
think see this kind of code.  (Maybe it "smells" too Railsy, I don't 
know.)  Anyway, if my approach is reasonable, then I'll be happy to send 
a patch/GitHub pull request upstream to couchapp if would help others.

-- 
Jason Smith
Proven Corporation
Bangkok, Thailand
http://www.proven-corporation.com

Mime
View raw message