system.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* global wiki */
  2. const Promise = require('bluebird')
  3. // const pm2 = Promise.promisifyAll(require('pm2'))
  4. // const _ = require('lodash')
  5. const cfgHelper = require('../helpers/config')
  6. module.exports = {
  7. /**
  8. * Upgrade from Wiki.js 1.x - MongoDB database
  9. *
  10. * @param {Object} opts Options object
  11. */
  12. async upgradeFromMongo (opts) {
  13. wiki.telemetry.sendEvent('setup', 'upgradeFromMongo')
  14. let mongo = require('mongodb').MongoClient
  15. let parsedMongoConStr = cfgHelper.parseConfigValue(opts.mongoCnStr)
  16. return new Promise((resolve, reject) => {
  17. // Connect to MongoDB
  18. return mongo.connect(parsedMongoConStr, {
  19. autoReconnect: false,
  20. reconnectTries: 2,
  21. reconnectInterval: 1000,
  22. connectTimeoutMS: 5000,
  23. socketTimeoutMS: 5000
  24. }, async (err, db) => {
  25. try {
  26. if (err !== null) { throw err }
  27. let users = db.collection('users')
  28. // Check if users table is populated
  29. let userCount = await users.count()
  30. if (userCount < 1) {
  31. throw new Error('Users table is empty or invalid!')
  32. }
  33. // Fetch all users
  34. let userData = await users.find({}).toArray()
  35. console.info(userData)
  36. resolve(true)
  37. } catch (err) {
  38. reject(err)
  39. db.close()
  40. }
  41. })
  42. })
  43. }
  44. }