Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 31902200C5C for ; Thu, 20 Apr 2017 14:10:04 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 30241160B9F; Thu, 20 Apr 2017 12:10:04 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 7A2F2160B91 for ; Thu, 20 Apr 2017 14:10:03 +0200 (CEST) Received: (qmail 46377 invoked by uid 500); 20 Apr 2017 12:09:57 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 46366 invoked by uid 99); 20 Apr 2017 12:09:57 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 20 Apr 2017 12:09:57 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 3C828180A5A for ; Thu, 20 Apr 2017 12:09:57 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.272 X-Spam-Level: ** X-Spam-Status: No, score=2.272 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.972] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id mx8WT63QTBwy for ; Thu, 20 Apr 2017 12:09:54 +0000 (UTC) Received: from monoceres.uberspace.de (monoceres.uberspace.de [95.143.172.184]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 264765F297 for ; Thu, 20 Apr 2017 12:09:54 +0000 (UTC) Received: (qmail 822 invoked from network); 20 Apr 2017 12:09:47 -0000 Received: from localhost (HELO ?172.23.3.40?) (127.0.0.1) by monoceres.uberspace.de with SMTP; 20 Apr 2017 12:09:47 -0000 From: Jan Lehnardt Content-Type: multipart/alternative; boundary="Apple-Mail=_CADB5E03-EE81-4FAC-BFED-4BFDA7670669" Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\)) Subject: Fwd: couchup, a 1.x->2.x migration tool, needs your testing! Message-Id: <27B46A1E-47D7-434E-8C4B-FD45CE0976A7@apache.org> References: <26109460.2631.1492640939907.JavaMail.Joan@RITA> To: "dev@couchdb.apache.org Developers" , marketing@couchdb.apache.org Date: Thu, 20 Apr 2017 14:09:45 +0200 X-Mailer: Apple Mail (2.3259) archived-at: Thu, 20 Apr 2017 12:10:04 -0000 --Apple-Mail=_CADB5E03-EE81-4FAC-BFED-4BFDA7670669 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii CC dev@ & marketing@ this is really cool! :) > Begin forwarded message: > > From: Joan Touzet > Subject: couchup, a 1.x->2.x migration tool, needs your testing! > Date: 20 April 2017 at 00:29:02 GMT+2 > To: user@couchdb.apache.org > Reply-To: user@couchdb.apache.org > Reply-To: Joan Touzet > > Hi everyone! > > I'm back with a new tool that I think you'll love, couchup. > > Your feedback is really needed this time- please help me test couchup > before we add it to CouchDB! > > -Joan > > > Overview > ======== > couchup makes it easy to migrate your CouchDB 1.x databases to CouchDB > 2.x by providing useful 4 sub-commands: > > list - lists all CouchDB 1.x databases > replicate - replicates one or more 1.x databases to CouchDB 2.x > rebuild - rebuilds one or more CouchDB 2.x views > delete - deletes one or more CouchDB 1.x databases > > The idea is that you'll install CouchDB 2.x, copy the .couch files from > your 1.x installation (or, if you've upgraded in-place, do nothing), > then something like the following: > > $ couchup list # Shows your unmigrated 1.x databases > $ couchup replicate -a # Replicates your 1.x DBs to 2.x > $ couchup rebuild -a # Optional; starts rebuilding your views > $ couchup delete -a # Deletes your 1.x DBs (careful!) > $ couchup list # Should show no remaining databases! > > The same process works for moving from a single 1.x node to a cluster of > 2.x nodes; the only difference is that you must complete cluster setup > prior to running the couchup commands. > > > Special Features > ================ > * Lots of extra help is available via: > > $ couchup -h > $ couchup -h > > * Various optional arguments provide for admin login/password, > overriding ports, quiet mode and so on. > > * couchup delete will NOT delete your 1.x DBs unless the contents are > identical to the replicated 2.x DBs, or you override with the > -f/--force command (be VERY careful with this!!) > > * couchup replicate supports an optional flag, -f/--filter-deleted, to > filter delete documents during the replication process. This can > improve the performance and disk-size of your database if it has a lot > of deleted documents. It is IMPORTANT that no documents be deleted > from the 1.x database during this process, or those deletions may not > successfully replicate to the 2.x database. (It's recommended that > you not access or modify the 1.x database at all during the whole > couchup process.) > > > Getting & Installing couchup > ============================ > First, backup everything. :) > > couchup is currently in a Pull Request to be merged with couchdb itself. > You can download a copy from the PR itself: > > https://github.com/apache/couchdb/pull/483 > > Click on the "Files changed" tab, then the "View" button, and finally > the "Raw" button. Save to disk. (I'm not directly linking because the > link may have changed by the time you read this.) > > Place couchup in the /path/to/couchdb/bin directory, or wherever you > like; it's not picky. Be sure to set the file as executable: > > chmod +x couchup > > couchup requires Python 2.7 or later (and has been tested on Python 3.6) > and the Python requests library. It can optionally make use of the > Python progressbar library as well. These can be installed with: > > pip install requests progressbar > > For Python 3.x you need the progressbar2 library instead: > > pip install requests progressbar2 > > Or, install these via binary packages in your friendly Linux/OSX/etc > distributions, e.g.: > > apt-get install python-requests python-progressbar > > I have explicitly included support for positively ancient versions of > python-requests (such as those provided by Ubuntu 12.04 and CentOS 6) > by special request. > > > Testing couchup > =============== > 1. Copy a bunch of CouchDB 1.x .couch files into the CouchDB 2.x data/ > directory. > 2. Start CouchDB 2.x. > 3. Use the 4 couchup commands to list, replicate, rebuild and delete > the databases as desired. > 4. Test your application against the migrated data. > 5. Report any bugs on this mailing list, or on the PR directly. > > > Cat > === > Thanks for reading this far! Here's an ASCII cat for you. > > |\ _,,,---,,_ > /,`.-'`' -. ;-;;,_ > |,4- ) )-,_..;\ ( `'_' > '---''(_/--' `-'\_) Felix Lee -- Professional Support for Apache CouchDB: https://neighbourhood.ie/couchdb-support/ --Apple-Mail=_CADB5E03-EE81-4FAC-BFED-4BFDA7670669--