CouchDB: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 10: | Zeile 10: | ||
− | + | == 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 == | |
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 == | |
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 == | |
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
- den Definitive Guide
- die Suche nach Substrings mittels Indizes
- Design Patterns für PouchDB (gelten im Regelfall auch für CouchDB)
- Gefilterte Replikation zur Vermeidung zu hohen Datentransfervolumens
- PouchDB Authentication (Browser-Seite)
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