Files
NodeBB/src/database.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

"use strict";
2013-12-02 15:45:15 -05:00
var nconf = require('nconf'),
primaryDBConfig = nconf.get('database'),
secondaryDBConfig = nconf.get('secondary_database'),
secondaryModules = nconf.get('secondary_db_modules'),
winston = require('winston'),
async = require('async'),
ALLOWED_MODULES = ['hash', 'list', 'sets', 'sorted'];
if(!primaryDBConfig) {
2013-12-06 17:47:48 -05:00
winston.info('Database type not set! Run node app --setup');
2013-12-06 17:46:03 -05:00
process.exit();
}
function setupSecondaryDB() {
var secondaryDB = require('./database/' + secondaryDBConfig);
secondaryModules = secondaryModules.split(/,\s*/);
for (var module in secondaryModules) {
if (secondaryModules.hasOwnProperty(module) && ALLOWED_MODULES.indexOf(module) !== -1) {
primaryDB[module] = secondaryDB[module];
}
}
var primaryDBinit = primaryDB.init,
primaryDBclose = primaryDB.close;
primaryDB.init = function(callback) {
async.parallel([primaryDBinit, secondaryDB.init], callback);
};
primaryDB.close = function(callback) {
async.parallel([primaryDBclose, secondaryDB.close], callback);
};
}
var primaryDB = require('./database/' + primaryDBConfig);
if (secondaryDBConfig && secondaryModules) {
setupSecondaryDB();
}
2013-12-02 15:45:15 -05:00
module.exports = primaryDB;