|
|
@@ -5,25 +5,22 @@ const appConfig = require('../config/app');
|
|
|
const SyncSeq = require('./sync-seq');
|
|
|
const { format } = require('date-fns');
|
|
|
|
|
|
-const dbs = ['coloring_ol']; // 需要同步的数据库, 主数据库(即syncevent表所在的库)放在第一个
|
|
|
-
|
|
|
+const remotedb = 'coloring_ol'; // 远端数据库
|
|
|
+const localdb = 'artsite'; // 本地的数据库
|
|
|
/**
|
|
|
* sync from remote
|
|
|
*/
|
|
|
async function run() {
|
|
|
- let delay = 30 * 1000; // sync freq
|
|
|
- let localDBHash = {};
|
|
|
- let remoteDBHash = {};
|
|
|
const localClient = await new MongoClient(appConfig.mongodbUrl).connect();
|
|
|
const remoteClient = await new MongoClient(appConfig.syncUrl).connect();
|
|
|
- for (let db of dbs) {
|
|
|
- localDBHash[db] = localClient.db(db);
|
|
|
- remoteDBHash[db] = remoteClient.db(db);
|
|
|
- }
|
|
|
+
|
|
|
+ let remoteDB = remoteClient.db(remotedb);
|
|
|
+ let localDB = localClient.db(localdb);
|
|
|
+
|
|
|
console.log('Connect to remote mongodb ' + appConfig.syncUrl + ' success!');
|
|
|
|
|
|
// 读取远程syncevent表
|
|
|
- const synceventTB = remoteDBHash[dbs[0]].collection('syncevents');
|
|
|
+ const synceventTB = remoteDB.collection('syncevents');
|
|
|
// get current local slave sync seq (use mongoose)
|
|
|
let seq = -1;
|
|
|
let seqDoc = await SyncSeq.findOne();
|
|
|
@@ -48,10 +45,10 @@ async function run() {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- if (!eventDoc.db) eventDoc.db = dbs[0];
|
|
|
+ if (!eventDoc.db) eventDoc.db = remoteDbs[0];
|
|
|
// 对应的表
|
|
|
- remotetb = remoteDBHash[eventDoc.db] ? remoteDBHash[eventDoc.db].collection(eventDoc.tb) : null;
|
|
|
- localtb = localDBHash[eventDoc.db] ? localDBHash[eventDoc.db].collection(eventDoc.tb) : null;
|
|
|
+ remotetb = remoteDB.collection(eventDoc.tb);
|
|
|
+ localtb = localDB.collection(eventDoc.tb);
|
|
|
if (!remotetb || !localtb) {
|
|
|
console.warn('unkown sync database: ' + eventDoc.db + ', will skip');
|
|
|
continue;
|