ok lot of smtp minors
This commit is contained in:
@@ -1,23 +1,52 @@
|
||||
const Sequelize = require('sequelize')
|
||||
const Umzug = require('umzug')
|
||||
const path = require('path')
|
||||
const config = require('../../config')
|
||||
const log = require('../../log')
|
||||
|
||||
const db = {
|
||||
sequelize: null,
|
||||
close () {
|
||||
return db.sequelize.close()
|
||||
if (db.sequelize) {
|
||||
return db.sequelize.close()
|
||||
}
|
||||
},
|
||||
async connect (dbConf = config.db) {
|
||||
log.debug(`Connecting to DB: ${dbConf}`)
|
||||
connect (dbConf = config.db) {
|
||||
log.debug(`Connecting to DB: ${JSON.stringify(dbConf)}`)
|
||||
db.sequelize = new Sequelize(dbConf)
|
||||
await db.sequelize.authenticate()
|
||||
return db.sequelize
|
||||
return db.sequelize.authenticate()
|
||||
},
|
||||
async isEmpty () {
|
||||
const users = await db.sequelize.query('SELECT * from users').catch(e => {})
|
||||
return !(users && users.length)
|
||||
},
|
||||
async runMigrations () {
|
||||
const logging = config.firstrun ? false : log.debug.bind(log)
|
||||
const umzug = new Umzug({
|
||||
storage: 'sequelize',
|
||||
storageOptions: { sequelize: db.sequelize },
|
||||
logging,
|
||||
migrations: {
|
||||
wrap: fun => {
|
||||
return () =>
|
||||
fun(db.sequelize.queryInterface, Sequelize).catch(e => {
|
||||
// log.error(e)
|
||||
return false
|
||||
})
|
||||
},
|
||||
path: path.resolve(__dirname, '..', '..', 'migrations')
|
||||
}
|
||||
})
|
||||
return await umzug.up()
|
||||
}
|
||||
}
|
||||
|
||||
if (!config.firstrun) {
|
||||
try {
|
||||
db.connect()
|
||||
db.connect().then(e => {
|
||||
log.debug('Running migrations')
|
||||
db.runMigrations()
|
||||
})
|
||||
} catch (e) {
|
||||
log.warn(` ⚠️ Cannot connect to db, check your configuration => ${e}`)
|
||||
process.exit(1)
|
||||
|
||||
Reference in New Issue
Block a user