mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 19:46:01 +01:00
fixed #3218
This commit is contained in:
13
app.js
13
app.js
@@ -109,6 +109,7 @@ function loadConfig() {
|
||||
|
||||
function start() {
|
||||
loadConfig();
|
||||
var db = require('./src/database');
|
||||
|
||||
// nconf defaults, if not set in config
|
||||
if (!nconf.get('upload_path')) {
|
||||
@@ -176,9 +177,8 @@ function start() {
|
||||
});
|
||||
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
require('./src/database').init(next);
|
||||
},
|
||||
async.apply(db.init),
|
||||
async.apply(db.checkCompatibility),
|
||||
function(next) {
|
||||
require('./src/meta').configs.init(next);
|
||||
},
|
||||
@@ -204,7 +204,12 @@ function start() {
|
||||
}
|
||||
], function(err) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
if (err.stacktrace !== false) {
|
||||
winston.error(err.stack);
|
||||
} else {
|
||||
winston.error(err.message);
|
||||
}
|
||||
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
nconf = require('nconf'),
|
||||
session = require('express-session'),
|
||||
_ = require('underscore'),
|
||||
semver = require('semver'),
|
||||
db, mongoClient;
|
||||
|
||||
_.mixin(require('underscore.deep'));
|
||||
@@ -137,6 +138,7 @@
|
||||
}
|
||||
|
||||
function createIndices() {
|
||||
winston.info('[database] Checking database indices.')
|
||||
async.parallel([
|
||||
async.apply(createIndex, 'objects', {_key: 1, score: -1}, {background: true}),
|
||||
async.apply(createIndex, 'objects', {_key: 1, value: -1}, {background: true, unique: true, sparse: true}),
|
||||
@@ -164,6 +166,17 @@
|
||||
});
|
||||
};
|
||||
|
||||
module.checkCompatibility = function(callback) {
|
||||
// For MongoDB, we need to ensure that the mongodb package is >= 2.0.0
|
||||
var mongoPkg = require.main.require('./node_modules/mongodb/package.json'),
|
||||
err = semver.lt(mongoPkg.version, '2.0.0') ? new Error('The `mongodb` package is out-of-date, please run `./nodebb setup` again.') : null;
|
||||
|
||||
if (err) {
|
||||
err.stacktrace = false;
|
||||
}
|
||||
callback(err);
|
||||
};
|
||||
|
||||
module.info = function(db, callback) {
|
||||
db.stats({scale:1024}, function(err, stats) {
|
||||
if(err) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
var winston = require('winston'),
|
||||
nconf = require('nconf'),
|
||||
path = require('path'),
|
||||
semver = require('semver'),
|
||||
session = require('express-session'),
|
||||
utils = require('./../../public/src/utils.js'),
|
||||
redis,
|
||||
@@ -111,6 +112,17 @@
|
||||
return cxn;
|
||||
};
|
||||
|
||||
module.checkCompatibility = function(callback) {
|
||||
// Redis requires v2.8.9
|
||||
module.info(module.client, function(err, info) {
|
||||
var err = semver.lt(info.redis_version, '2.8.9') ? new Error('Your Redis version is not new enough to support NodeBB, please upgrade Redis to v2.8.9 or higher.') : null;
|
||||
if (err) {
|
||||
err.stacktrace = false;
|
||||
}
|
||||
callback(err);
|
||||
});
|
||||
};
|
||||
|
||||
module.close = function() {
|
||||
redisClient.quit();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user