wikijs-fork/server/modules/system.js

54 lines
1.3 KiB
JavaScript
Raw Normal View History

/* global wiki */
2017-02-13 05:59:52 +00:00
const Promise = require('bluebird')
// const pm2 = Promise.promisifyAll(require('pm2'))
// const _ = require('lodash')
const cfgHelper = require('../helpers/config')
2017-02-13 05:59:52 +00:00
module.exports = {
2017-02-14 04:30:42 +00:00
/**
* Upgrade from Wiki.js 1.x - MongoDB database
2017-02-14 04:30:42 +00:00
*
* @param {Object} opts Options object
2017-02-14 04:30:42 +00:00
*/
async upgradeFromMongo (opts) {
wiki.telemetry.sendEvent('setup', 'upgradeFromMongo')
2017-02-13 05:59:52 +00:00
let mongo = require('mongodb').MongoClient
let parsedMongoConStr = cfgHelper.parseConfigValue(opts.mongoCnStr)
2017-02-13 05:59:52 +00:00
return new Promise((resolve, reject) => {
// Connect to MongoDB
return mongo.connect(parsedMongoConStr, {
autoReconnect: false,
reconnectTries: 2,
reconnectInterval: 1000,
connectTimeoutMS: 5000,
socketTimeoutMS: 5000
}, async (err, db) => {
try {
if (err !== null) { throw err }
let users = db.collection('users')
// Check if users table is populated
let userCount = await users.count()
if (userCount < 1) {
throw new Error('Users table is empty or invalid!')
2017-02-13 05:59:52 +00:00
}
// Fetch all users
let userData = await users.find({}).toArray()
console.info(userData)
2017-02-14 04:30:42 +00:00
resolve(true)
} catch (err) {
reject(err)
db.close()
}
})
2017-02-13 05:59:52 +00:00
})
}
}