You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by Apache Wiki <wi...@apache.org> on 2011/12/07 13:19:15 UTC
[Couchdb Wiki] Update of "How_to_deploy_view_changes_in_a_live_environment" by NilsBreunese
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.
The "How_to_deploy_view_changes_in_a_live_environment" page has been changed by NilsBreunese:
http://wiki.apache.org/couchdb/How_to_deploy_view_changes_in_a_live_environment?action=diff&rev1=5&rev2=6
Comment:
Cleaned up the instructions, integrated the rollback step and added a note about view cleanup.
http://localhost:5984/database/_design/ddoc needs to be updated
So the simple approach is:
+ 1. Upload the old design doc to _design/ddoc-old (or copy _design/ddoc to _design/ddoc-old) if you want an easy way to rollback in case of problems. This will cause the view indexes for _design/ddoc to be shared with _design/ddoc-old.
- 1. Upload the updated design doc to _design/ddoc-new
+ 2. Upload the updated design doc to _design/ddoc-new.
+ 3. Query a view in _design/ddoc-new to trigger view index generation. You can track the indexing progress via Futon at http://localhost:5984/_utils/status.html or by requesting http://localhost:5984/_active_tasks directly.
+ 4. Reupload the updated design doc to _design/ddoc (or copy _design/ddoc-new to _design/ddoc) when view index generation is complete. This will cause the indexes built for _design/ddoc-new to be shared with _design/ddoc. The updated design doc is now live with view indexes ready to go!
+ 5. Delete _design/ddoc-new and/or _design/ddoc-old at your discretion. Don't forget to also run a clean-up to reclaim the disk space used by their view indexes: http://wiki.apache.org/couchdb/HTTP_view_API#View_Cleanup
- 2. Query a view in _design/ddoc-new to trigger view index generation
- 3. When view index generation is complete - copy _design/ddoc-new to _design/ddoc. This will cause the already built indexes to be shared by both design documents.
- 4. Delete _design/ddoc-new at your discretion (or keep it in place for the next release)
-
- If you copy _design/ddoc to _design/ddoc-old before copying _design/ddoc-new to _design/ddoc you can also easily roll back to the previous design document in case the update causes any trouble.
To copy a document use:
curl -X COPY <URL of source design document> -H "Destination: <ID of destination design document>"
@@ -27, +26 @@
When copying a document to an already existing destination, you'll also need to supply the revision of the document you want to overwrite:
curl -X COPY <URL of source design document> -H "Destination: <ID of destination design document>?rev=<revision>"
- To copy http://localhost:5984/database/_design/ddoc-new to http://localhost:5984/database/_design/ddoc:
+ Example: copy http://localhost:5984/database/_design/ddoc to http://localhost:5984/database/_design/ddoc-old:
- curl -X COPY http://localhost:5984/database/_design/ddoc-new -H "Destination: _design/ddoc"
+ curl -X COPY http://localhost:5984/database/_design/ddoc -H "Destination: _design/ddoc-old"
'''Note: This approach will work for normal couch views, couchdb-lucene views (fulltext), and should also work for bigcouch clusters - to my understanding'''