PouchDB - Replikation

Eine der wichtigsten Funktionen von PouchDB ist die Replikation, dh Sie können eine Kopie einer Datenbank erstellen. Sie können entweder eine lokal gespeicherte PouchDB-Instanz oder eine remote gespeicherte CouchDB-Instanz replizieren.

Syntax

Im Folgenden finden Sie die Syntax zum Replizieren einer Datenbank in PouchDB. Hier eine Kopie dersource databaseist das Ziel. An diese Methode können Sie den Speicherort von Quell- und Zieldatenbanken direkt im String-Format übergeben oder Objekte übergeben, die diese darstellen.

PouchDB.replicate(source, target, [options])

Sowohl die Quelle als auch die Ziele können entweder PouchDB-Instanzen oder CouchDB-Instanzen sein.

Replizieren von LocalDB in CouchDB

Angenommen, es gibt eine Datenbank mit dem Namen sample_database in PouchDB und enthält 3 Dokumente doc1, doc2 und doc3 mit den folgenden Inhalten.

doc1 = {_id: '001', name: 'Ram', age: 23, Designation: 'Programmer'} 
doc2 = {_id: '002', name: 'Robert', age: 24, Designation: 'Programmer'} 
doc3 = {_id: '003', name: 'Rahim', age: 25, Designation: 'Programmer'}

Es folgt ein Beispiel, das eine Kopie der genannten Datenbank erstellt sample_database das ist lokal in CouchDB gespeichert.

//Requiring the package 
var PouchDB = require('PouchDB');

var localdb = 'sample_database';

//Creating remote database object 
var remotedb = 'http://localhost:5984/sample_database';

//Replicating a local database to Remote 
PouchDB.replicate(localDB, remoteDB); 
console.log ("Database replicated successfully");

Speichern Sie den obigen Code in einer Datei mit Namen Replication_example.js. Öffnen Sie die Eingabeaufforderung und führen Sie die JavaScript-Datei mit ausnode Wie nachfolgend dargestellt.

C:\PouchDB_Examples >node Replication_example.js

Dadurch wird eine Kopie der Datenbank mit dem Namen sample_database in der CouchDB-Instanz erstellt und eine Meldung auf der Konsole angezeigt, wie unten gezeigt.

Database replicated successfully

Sie können überprüfen, ob die Datenbank in Ihrer CouchDB-Instanz repliziert wurde, indem Sie auf den folgenden Link klicken http://127.0.0.1:5984/_utils/index.html.

Beim Klicken sehen Sie die Liste der Datenbanken in Ihrer CouchDB. Sie können auch beobachten, dass eine Kopie der Datenbanksample_database wird hier erstellt.

Wenn Sie die replizierte Datenbank auswählen, können Sie deren Inhalt wie unten gezeigt anzeigen.

CouchDB auf PouchDB replizieren

Angenommen, es gibt eine Datenbank mit dem Namen Remote_Database in CouchDB und es enthält 3 Dokumente, doc1, doc2 und doc3, mit Inhalten wie unten gezeigt.

doc1 = {_id: '001', name: 'Geeta', age: 25, Designation: 'Programmer'}
doc2 = {_id: '002', name: 'Zara Ali', age: 24, Designation: 'Manager'}
doc3 = {_id: '003', name: 'Mary', age: 23, Designation: 'Admin'}

Es folgt ein Beispiel, das eine Kopie der genannten Datenbank erstellt Remote_Database das ist in CouchDB im lokalen Speicher gespeichert.

//Requiring the package
var PouchDB = require('PouchDB');

var localdb = 'sample_database';

var remotedb = 'http://localhost:5984/sample_database1';

//Replicating a local database to Remote
PouchDB.replicate(remotedb, localdb);
console.log("Database replicated successfully");

Speichern Sie den obigen Code in einer Datei mit dem Namen Replication_example2.js. Öffnen Sie die Eingabeaufforderung und führen Sie die JavaScript-Datei mit ausnode Wie nachfolgend dargestellt.

C:\PouchDB_Examples >node Replication_example2.js

Dadurch wird eine Kopie der Datenbank mit dem Namen erstellt remote_database in der PouchDB-Instanz und zeigt eine Meldung auf der Konsole an, wie unten gezeigt.

Database replicated successfully

Sie können überprüfen, ob die Datenbank in Ihrer Pouch-Instanz repliziert wurde, indem Sie den folgenden Code ausführen.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('remote_database');

//Retrieving all the documents in PouchDB
db.allDocs({include_docs: true, attachments: true}, function(err, docs) {
   if (err) {
      return console.log(err);
   } else {
      console.log(docs.rows);
   }
});

Wenn die Datenbank beim Ausführen des obigen Codes repliziert wird, erhalten Sie den Inhalt der replizierten Datenbank wie unten gezeigt.

[ 
   { 
      id: '001', 
      key: '001', 
      value: { rev: '1-23cf3767e32a682c247053b16caecedb' }, 
      doc: { 
         name: 'Geeta', 
         age: 25, 
         Designation: 'Programmer', 
         _id: '001',
         _rev: '1-23cf3767e32a682c247053b16caecedb' 
      } 
   }, 
   { 
      id: '002', 
      key: '002', 
      value: { rev: '1-d5bcfafbd4d4fae92fd7fc4fdcaa3a79' }, 
      doc: { 
         name: 'Zara Ali', 
         age: 24, 
         Designation: 'Manager', 
         _id: '002',
         _rev: '1-d5bcfafbd4d4fae92fd7fc4fdcaa3a79' 
      } 
   }, 
   { 
      id: '003', 
      key: '003', 
      value: { rev: '1-c4cce025dbd30d21e40882d41842d5a4' }, 
      doc: { 
         name: 'Mary', 
         age: 23, 
         Designation: 'Admin', 
         _id: '003', 
         _rev: '1-c4cce025dbd30d21e40882d41842d5a4' 
      } 
   } 
]