CouchDB: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
 
Zeile 10: Zeile 10:
  
  
===== Einrichten eines Administrators =====
+
== 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.
 
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.
Zeile 16: Zeile 16:
  
  
===== Views =====
+
== Views ==
  
 
Um eine View "words", die einem Designdokument "_design/myDesignDoc" in der Datenbank "texts", hinterlegt ist, zu nutzen, ruft man sie folgendermaßen auf:
 
Um eine View "words", die einem Designdokument "_design/myDesignDoc" in der Datenbank "texts", hinterlegt ist, zu nutzen, ruft man sie folgendermaßen auf:
Zeile 25: Zeile 25:
 
Will man sich die Ausgangsdokumente gleich mit anzeigen lassen, nimmt man den zusätzlichen Parameter <code>include_docs=true</code>.<ref>Vgl. http://docs.couchdb.org/en/latest/ddocs/views/collation.html</ref>
 
Will man sich die Ausgangsdokumente gleich mit anzeigen lassen, nimmt man den zusätzlichen Parameter <code>include_docs=true</code>.<ref>Vgl. http://docs.couchdb.org/en/latest/ddocs/views/collation.html</ref>
  
===== PouchDB =====
+
== PouchDB ==
  
 
Bei einer Replikation von CouchDB zu PouchDB ist die <code>retry</code>-Option wichtig, um das Abbrechen der Replikation zu vermeiden. Beispiel:
 
Bei einer Replikation von CouchDB zu PouchDB ist die <code>retry</code>-Option wichtig, um das Abbrechen der Replikation zu vermeiden. Beispiel:
Zeile 43: Zeile 43:
  
  
===== Fehlerbehebung =====
+
== Fehlerbehebung ==
  
 
Unter Linux Mint 18 gab es nach dem Upgrade auf Version 2.1.1-1~xenial von CouchDB folgenden Fehler ("internal_server_error"): <cite>No DB shards could be opened.</cite>.
 
Unter Linux Mint 18 gab es nach dem Upgrade auf Version 2.1.1-1~xenial von CouchDB folgenden Fehler ("internal_server_error"): <cite>No DB shards could be opened.</cite>.
  
 
Abhilfe schaffte ein Downgrade auf Version 2.1.0~xenial. Dazu geht man in der Beschreibung des Pakets <code>couchdb</code> in <code>aptitude</code> 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.
 
Abhilfe schaffte ein Downgrade auf Version 2.1.0~xenial. Dazu geht man in der Beschreibung des Pakets <code>couchdb</code> in <code>aptitude</code> 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 ==
 +
 +
* [http://hood.ie/intro/#get-started Hoodie] - Offline-First
 +
* Cloudant-Service von IBM
 +
  
 
--------
 
--------

Aktuelle Version vom 18. März 2021, 15:40 Uhr

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