#!/bin/sh -ex cd /tmp TESTDIR=couchdb-upgrade-1.0-to-1.1 rm -rf $TESTDIR mkdir -p $TESTDIR cd $TESTDIR mkdir -p src mkdir -p 1.0 mkdir -p 1.1 cd src git clone git://git.apache.org/couchdb.git --depth=1 cd couchdb # build 1.0.x git checkout 1.0.x ./bootstrap ./configure --prefix=/tmp/$TESTDIR/1.0 make -j4 make install # build 1.1.x git checkout 1.1.x ./bootstrap ./configure --prefix=/tmp/$TESTDIR/1.1 make -j4 make install cd ../.. cd 1.0 # launch 1.0 echo "[couchdb]" > llocal.ini echo "delayed_commits=false" >> llocal.ini echo "" >> llocal.ini ./bin/couchdb -b -a llocal.ini cd .. cd 1.1 # launch 1.1 echo "[couchdb]" > llocal.ini echo "delayed_commits=false" >> llocal.ini echo "[httpd]" >> llocal.ini echo "port=5985" >> llocal.ini echo "" >> llocal.ini ./bin/couchdb -b -a llocal.ini sleep 2 cd .. # create test db in 1.0 COUCH10=http://127.0.0.1:5984 curl -X PUT $COUCH10/test-db curl -X PUT $COUCH10/test-db/test-doc/attachment.txt \ -H "Content-Type: text/plain" \ -d "My Hovercraft is full of eels" RESULT=`curl $COUCH10/test-db/test-doc/attachment.txt` if [ "$RESULT" = "My Hovercraft is full of eels" ]; then echo "PASS SETUP" else echo "FAIL SETUP" fi # copy test db to 1.1 cp 1.0/var/lib/couchdb/test-db.couch 1.1/var/lib/couchdb/test-db.couch # compact with 1.1 COUCH11=http://127.0.0.1:5985 curl -X POST $COUCH11/test-db/_compact -H "Content-Type: application/json" # validate test db RESULT=`curl $COUCH11/test-db/test-doc/attachment.txt` if [ "$RESULT" = "My Hovercraft is full of eels" ]; then echo "PASS VALIDATION" else echo "FAIL VALIDATION" fi # shutdown couches cd /tmp/$TESTDIR cd 1.0 ./bin/couchdb -d cd .. cd 1.1 ./bin/couchdb -d