Учебники

PouchDB — Репликация

Одной из наиболее важных функций PouchDB является репликация, то есть вы можете сделать копию базы данных. Вы можете реплицировать либо экземпляр PouchDB, хранящийся локально, либо экземпляр CouchDB, хранящийся удаленно.

Синтаксис

Ниже приведен синтаксис репликации базы данных в PouchDB. Здесь, копия исходной базы данных является целью. В этом методе вы можете напрямую передавать местоположение исходной и целевой баз данных в формате String или передавать объекты, представляющие их.

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

И источник, и цель могут быть экземплярами PouchDB или CouchDB.

Репликация LocalDB в CouchDB

Предположим, что в PouchDB есть база данных с именем sample_database , и она содержит 3 документа doc1, doc2 и doc3, содержимое которых показано ниже.

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'}

Ниже приведен пример, который делает копию базы данных с именем sample_database, которая хранится локально в CouchDB.

//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");

Сохраните приведенный выше код в файле с именем Replication_example.js . Откройте командную строку и выполните файл JavaScript, используя узел, как показано ниже.

C:\PouchDB_Examples >node Replication_example.js

Это создает копию базы данных с именем sample_database в экземпляре CouchDB и отображает сообщение на консоли, как показано ниже.

Database replicated successfully

Вы можете проверить, реплицирована ли база данных в вашем экземпляре CouchDB, перейдя по следующей ссылке http://127.0.0.1:5984/_utils/index.html .

При нажатии вы можете увидеть список баз данных в вашей CouchDB. Вы также можете заметить, что здесь создается копия базы данных sample_database .

Пример базы данных

Если вы выбрали реплицированную базу данных, вы можете просмотреть ее содержимое, как показано ниже.

Реплицированная база данных

Репликация CouchDB в PouchDB

Предположим, что в CouchDB есть база данных с именем Remote_Database, и она содержит 3 документа, doc1, doc2 и doc3, содержимое которых показано ниже.

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'}

Ниже приведен пример, который делает копию базы данных с именем Remote_Database, которая хранится в CouchDB в локальном хранилище.

//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");

Сохраните приведенный выше код в файле с именем Replication_example2.js . Откройте командную строку и выполните файл JavaScript, используя узел, как показано ниже.

C:\PouchDB_Examples >node Replication_example2.js

Это создает копию базы данных с именем remote_database в экземпляре PouchDB и отображает сообщение на консоли, как показано ниже.

Database replicated successfully

Вы можете проверить, реплицирована ли база данных в вашем экземпляре Pouch, выполнив следующий код.

//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);
   }
});

Если база данных реплицируется при выполнении вышеуказанного кода, вы получите содержимое реплицированной базы данных, как показано ниже.