CouchDB

Aus CodicaTipps
Version vom 18. März 2021, 15:40 Uhr von Codica (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

CouchDB ist ein OpenSource-Datenbank-System, das über eine REST-Schnittstelle gesteuert wird. Mit PouchDB gibt es eine Replikation im Browser, so dass offline weitergearbeitet werden kann.

Siehe


Einrichten eines Administrators

Zu Beginn kann jeder Nutzer in CouchDB alles ändern und lesen. Das nennt man die Admin Party. Diese kann durch Erzeugen eines Administrators zerstört werden.

 curl -s -X PUT http://localhost:5984/_node/couchdb@localhost/_config/admins/admin -d '"admin_pw"'


Views

Um eine View "words", die einem Designdokument "_design/myDesignDoc" in der Datenbank "texts", hinterlegt ist, zu nutzen, ruft man sie folgendermaßen auf:

 curl -X GET 'http://localhost:5984/texts/_design/myDesignDoc/_view/words?startkey="Man"&endkey="Manz"' | python -m json.tool

Damit erhält man mehrere Datensätze, die zuvor mit der emit()-Funktion erzeugt wurden. Will man nur Treffer für einen bestimmten Schlüssel, ersetzt man die startkey und endkey durch ein einzelnes key=SUCHWORT.

Will man sich die Ausgangsdokumente gleich mit anzeigen lassen, nimmt man den zusätzlichen Parameter include_docs=true.[1]

PouchDB

Bei einer Replikation von CouchDB zu PouchDB ist die retry-Option wichtig, um das Abbrechen der Replikation zu vermeiden. Beispiel:

 var localdb=new PouchDB("mylocalDB");
 var remoteDB=new PouchDB("http://www.example.com:5984/couchdb/myremoteDB");
 localdb.replicate.from(remoteDB,{ retry:true })
     .on('complete', function() {
     status("Replication completed.");
    }).on('error', function(err) {
       status("an Error occured: "+err);
       
       ergebnis(err);
    }).on('change', function(change) {
      counter++;
      status("Change #"+counter+": "+change);
    });


Fehlerbehebung

Unter Linux Mint 18 gab es nach dem Upgrade auf Version 2.1.1-1~xenial von CouchDB folgenden Fehler ("internal_server_error"): No DB shards could be opened..

Abhilfe schaffte ein Downgrade auf Version 2.1.0~xenial. Dazu geht man in der Beschreibung des Pakets couchdb in aptitude ganz nach unten. Hier werden die möglichen Versionen angezeigt, die dann wie Pakete installiert werden können. Mit der Taste F bei Version 2.1.1-1~xenial kann dann noch verhindert werden, dass bei einer normalen Aktualisierung dieses Paket wieder mitinstalliert wird.

Produkte auf Basis von CouchDB

  • Hoodie - Offline-First
  • Cloudant-Service von IBM