PouchDB复制(制作数据库副本)

本文概述

  • 将PouchDB(本地)复制到CouchDB
  • 验证
  • 将CouchDB复制到PouchDB
复制是PouchDB的一个非常重要的功能。它可以帮助你制作数据库副本。你可以复制本地存储的PouchDB实例或远程存储的CouchDB实例。
使用此方法时, 可以直接以String格式传递源数据库和目标数据库的位置, 也可以传递表示它们的对象。
句法
PouchDB.replicate(source, target, [options])

【PouchDB复制(制作数据库副本)】源和目标都可以是PouchDB实例或CouchDB实例。
将PouchDB(本地)复制到CouchDB 让我们在PouchDB中使用一个名为” sample_database” 的数据库, 该数据库包含3个文档doc1, doc2和doc3, 其内容如下。
PouchDB复制(制作数据库副本)

文章图片
{ id: '001', key: '001', value: { rev: '1-20a74c908d2c4e168d47571c4c6b4d5f' }, doc:{ name: 'Ajeet', age: 21, Designation: 'Programmer', _id: '001', _rev: '1-20a74c908d2c4e168d47571c4c6b4d5f' } }, { id: '002', key: '002', value: { rev: '1-89b7169dca7c47558e0aa47474b3e873' }, doc:{ name: 'Robert', age: 34, Designation: 'Designer', _id: '002', _rev: '1-89b7169dca7c47558e0aa47474b3e873' } }, { id: '003', key: '003', value: { rev: '1-5cf7e1bbd3bf4765a72a17e164692def' }, doc:{ name: 'Rohila', age: 15, Designation: 'Student', _id: '003', _rev: '1-5cf7e1bbd3bf4765a72a17e164692def' } } ]

现在, 在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");

将以上代码保存在名为” PouchDB_Examples” 的文件夹中的” Remote_Replication.js” 文件中。打开命令提示符, 并使用node执行JavaScript文件:
node Remote_Replication.js

输出
PouchDB复制(制作数据库副本)

文章图片
验证 你可以打开CouchDB链接, 并看到已创建数据库” sample_database” 。
图像:Replication3
你还可以在这里查看所有三个文档:
PouchDB复制(制作数据库副本)

文章图片
PouchDB复制(制作数据库副本)

文章图片
PouchDB复制(制作数据库副本)

文章图片
PouchDB复制(制作数据库副本)

文章图片
将CouchDB复制到PouchDB 让我们在CouchDB服务器上创建一个名为” remotedb” 的数据库, 其中包含三个文档doc1, doc2和doc3, 其内容如下:
doc1 = {_id: '001', name: 'Jen', age: 20, Designation: 'Teacher'}doc2 = {_id: '002', name: 'Jacob', age: 24, Designation: 'Lawyer'}doc3 = {_id: '003', name: 'Johnny', age: 36, Designation: 'Plumber'}

PouchDB复制(制作数据库副本)

文章图片
让我们在本地服务器PouchDB中复制此数据库。
//Requiring the packagevar PouchDB = require('PouchDB'); var localdb = 'remotedb'; var remotedb2 = 'http://localhost:5984/remotedb'; //Replicating a local database to RemotePouchDB.replicate(remotedb2, localdb); console.log("Database replicated successfully to PouchDB");

将以上代码保存在名为” PouchDB_Examples” 的文件夹中的名为” Local_Replication.js” 的文件中。打开命令提示符, 并使用node执行JavaScript文件:
node Local_Replication.js

输出
PouchDB复制(制作数据库副本)

文章图片
你可以使用以下代码来验证是否在Pouch实例中复制了数据库。
//Requiring the packagevar PouchDB = require('PouchDB'); //Creating the database objectvar db = new PouchDB('remotedb'); //Retrieving all the documents in PouchDBdb.allDocs({include_docs: true, attachments: true}, function(err, docs) {if (err) {return console.log(err); } else {console.log(docs.rows); }});

将以上代码保存在名为” PouchDB_Examples” 的文件夹中的名为” Verify_Replication.js” 的文件中。打开命令提示符, 并使用node执行JavaScript文件:
node Verify_Replication.js

输出
PouchDB复制(制作数据库副本)

文章图片
{ id: '001', key: '001', value: { rev: '1-a323b7088ac944b382e15c33cb771b6d' }, doc:{ name: 'Jen', age: '20', Designation: 'Teacher', _id: '001', _rev: '1-a323b7088ac944b382e15c33cb771b6d' } }, { id: '002', key: '002', value: { rev: '1-20f14cf10f3ffacd1b5447737240c995' }, doc:{ name: 'Jacob', age: '24', Designation: 'Lawyer', _id: '002', _rev: '1-20f14cf10f3ffacd1b5447737240c995' } }, { id: '003', key: '003', value: { rev: '1-6668a7d03dff7b43f37528f24061001b' }, doc:{ name: 'Johnny', age: '36', Designation: 'Plumber', _id: '003', _rev: '1-6668a7d03dff7b43f37528f24061001b' } } ]

    推荐阅读