Одной из наиболее важных функций 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); } });
Если база данных реплицируется при выполнении вышеуказанного кода, вы получите содержимое реплицированной базы данных, как показано ниже.