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'''
