afecf16949b02d26c92447ee017fa20c01f6c8b5
[leap_doc.git] / docs / platform / details / couchdb.md
1 @title = "CouchDB"
2
3 Rebalance Cluster
4 =================
5
6 Bigcouch currently does not have automatic rebalancing.
7 It will probably be added after merging into couchdb.
8 If you add a node, or remove one node from the cluster,
9
10 . make sure you have a backup of all DBs !
11
12     /srv/leap/couchdb/scripts/couchdb_dumpall.sh
13
14
15 . delete all dbs
16 . shut down old node
17 . check the couchdb members
18
19     curl -s —netrc-file /etc/couchdb/couchdb.netrc -X GET http://127.0.0.1:5986/nodes/_all_docs
20     curl -s —netrc-file /etc/couchdb/couchdb.netrc http://127.0.0.1:5984/_membership
21
22
23 . remove bigcouch from all nodes
24
25     apt-get --purge remove bigcouch
26
27
28 . deploy to all couch nodes
29
30     leap deploy development +couchdb
31
32 . most likely, deploy will fail because bigcouch will complain about not all nodes beeing connected. Lets the deploy finish, restart the bigcouch service on all nodes and re-deploy:
33
34     /etc/init.d/bigcouch restart
35
36
37 . restore the backup
38
39      /srv/leap/couchdb/scripts/couchdb_restoreall.sh
40
41
42 Re-enabling blocked account
43 ===========================
44
45 When a user account gets destroyed from the webapp, there's still a leftover doc in the identities db so other ppl can't claim that account without admin's intervention. Here's how you delete that doc and therefore enable registration for that particular account again:
46
47 . grep the identities db for the email address:
48
49     curl -s --netrc-file /etc/couchdb/couchdb.netrc -X GET http://127.0.0.1:5984/identities/_all_docs?include_docs=true|grep test_127@bitmask.net
50
51
52 . lookup "id" and "rev" to delete the doc:
53
54     curl -s --netrc-file /etc/couchdb/couchdb.netrc -X DELETE 'http://127.0.0.1:5984/identities/b25cf10f935b58088f0d547fca823265?rev=2-715a9beba597a2ab01851676f12c3e4a'
55
56
57