Created
November 13, 2022 04:00
-
-
Save nickva/9c3c73498433a100b862226529d59a25 to your computer and use it in GitHub Desktop.
CouchDB doc update and delete script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -e | |
| URL=http://adm:pass@localhost:15984 | |
| DB=${URL}/dbx | |
| CFG=${URL}/_node/_local/_config | |
| TMPFILE=/tmp/couch_largehex | |
| DOCSIZE=100 | |
| http -q delete $DB | |
| http -q put $DB q==1 n==1 | |
| echo -n '"warning"' | http -q put ${CFG}/smoosh/compaction_log_level X-Couch-Persist:false | |
| echo -n '"warning"' | http -q put ${CFG}/couchdb/compaction_log_level X-Couch-Persist:false | |
| openssl rand -hex ${DOCSIZE} > ${TMPFILE} | |
| for DOC in {1..10}; do | |
| echo | |
| echo "**** DOC: ${DOC} ****" | |
| REV=$(http put ${DB}/${DOC} data=@${TMPFILE} | jq -r '.rev') | |
| for x in {1..5}; do | |
| REV=$(http put ${DB}/${DOC} rev==${REV} data=@${TMPFILE} x=${x} | jq -r '.rev') | |
| echo "After update ${x} REV:${REV}" | |
| http $DB | jq '.sizes' | |
| done | |
| echo | |
| echo "Before delete": | |
| http $DB | jq '.sizes' | |
| REV=$(http ${DB}/${DOC} | jq -r '._rev') | |
| http -q delete ${DB}/${DOC} rev==${REV} | |
| echo | |
| echo "After delete": | |
| http $DB | jq '.sizes' | |
| done | |
| echo "Waiting or smoosh to notice..." | |
| sleep 30 | |
| echo | |
| echo "Trigger compaction..." | |
| http -q post ${DB}/_compact a=b | |
| sleep 5 | |
| echo "After compaction" | |
| http $DB | jq '.sizes' | |
| rm ${TMPFILE} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment