1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* global wiki */
- const Promise = require('bluebird')
- // const pm2 = Promise.promisifyAll(require('pm2'))
- // const _ = require('lodash')
- const cfgHelper = require('../helpers/config')
- module.exports = {
- /**
- * Upgrade from Wiki.js 1.x - MongoDB database
- *
- * @param {Object} opts Options object
- */
- async upgradeFromMongo (opts) {
- wiki.telemetry.sendEvent('setup', 'upgradeFromMongo')
- let mongo = require('mongodb').MongoClient
- let parsedMongoConStr = cfgHelper.parseConfigValue(opts.mongoCnStr)
- 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!')
- }
- // Fetch all users
- let userData = await users.find({}).toArray()
- console.info(userData)
- resolve(true)
- } catch (err) {
- reject(err)
- db.close()
- }
- })
- })
- }
- }
|