diff --git a/server/api/models/announcement.js b/server/api/models/announcement.js index a459bac0..0b0926c5 100644 --- a/server/api/models/announcement.js +++ b/server/api/models/announcement.js @@ -1,4 +1,4 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') class Announcement extends Model {} diff --git a/server/api/models/ap_user.js b/server/api/models/ap_user.js index 30c1f967..20e80a55 100644 --- a/server/api/models/ap_user.js +++ b/server/api/models/ap_user.js @@ -1,4 +1,4 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') class APUser extends Model {} diff --git a/server/api/models/event.js b/server/api/models/event.js index e66368f4..ef0af774 100644 --- a/server/api/models/event.js +++ b/server/api/models/event.js @@ -1,11 +1,11 @@ -const config = require('config') +const config = require('../../config') const moment = require('dayjs') const { htmlToText } = require('html-to-text') const { Model, DataTypes } = require('sequelize') const SequelizeSlugify = require('sequelize-slugify') -const sequelize = require('./index') +const sequelize = require('./index').sequelize const Resource = require('./resource') const Notification = require('./notification') diff --git a/server/api/models/eventnotification.js b/server/api/models/eventnotification.js index d89f99eb..662f05e9 100644 --- a/server/api/models/eventnotification.js +++ b/server/api/models/eventnotification.js @@ -1,4 +1,4 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') class EventNotification extends Model {} diff --git a/server/api/models/index.js b/server/api/models/index.js index f3d523e6..7ff217d3 100644 --- a/server/api/models/index.js +++ b/server/api/models/index.js @@ -1,41 +1,27 @@ -// const fs = require('fs') -// const path = require('path') const Sequelize = require('sequelize') -// const basename = path.basename(__filename) -const config = require('config') -const consola = require('consola') -// const db = {} -let sequelize = null +const config = require('../../config') +const log = require('../../log') -try { - sequelize = new Sequelize(config.db) -} catch (e) { - consola.warn(` ⚠️ Cannot connect to db, check your configuration => ${e}`) - process.exit(-1) +const db = { + sequelize: null, + close () { + return db.sequelize.close() + }, + async connect (dbConf = config.db) { + log.debug(`Connecting to DB: ${dbConf}`) + db.sequelize = new Sequelize(dbConf) + await db.sequelize.authenticate() + return db.sequelize + } } -sequelize.authenticate().catch(e => { - consola.error(' ⚠ Error connecting to DB: ', String(e)) - process.exit(-1) -}) +if (!config.firstrun) { + try { + db.connect() + } catch (e) { + log.warn(` ⚠️ Cannot connect to db, check your configuration => ${e}`) + process.exit(1) + } +} -// fs -// .readdirSync(__dirname) -// .filter(file => { -// return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js') -// }) -// .forEach(file => { -// const model = sequelize.import(path.join(__dirname, file)) -// db[model.name] = model -// }) - -// Object.keys(db).forEach(modelName => { -// if (db[modelName].associate) { -// db[modelName].associate(db) -// } -// }) - -// db.sequelize = sequelize -// db.Sequelize = Sequelize - -module.exports = sequelize +module.exports = db diff --git a/server/api/models/instance.js b/server/api/models/instance.js index 5802767b..a9f8e96b 100644 --- a/server/api/models/instance.js +++ b/server/api/models/instance.js @@ -1,5 +1,5 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') const APUser = require('./ap_user') diff --git a/server/api/models/notification.js b/server/api/models/notification.js index 3f212f5a..19879a77 100644 --- a/server/api/models/notification.js +++ b/server/api/models/notification.js @@ -1,5 +1,5 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') class Notification extends Model {} diff --git a/server/api/models/oauth_client.js b/server/api/models/oauth_client.js index 1f15d790..103aaf59 100644 --- a/server/api/models/oauth_client.js +++ b/server/api/models/oauth_client.js @@ -1,5 +1,5 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') class OAuthClient extends Model {} diff --git a/server/api/models/oauth_code.js b/server/api/models/oauth_code.js index e0be1022..45b98fe5 100644 --- a/server/api/models/oauth_code.js +++ b/server/api/models/oauth_code.js @@ -1,5 +1,5 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') const User = require('./user') diff --git a/server/api/models/oauth_token.js b/server/api/models/oauth_token.js index 4220b130..2530bf1c 100644 --- a/server/api/models/oauth_token.js +++ b/server/api/models/oauth_token.js @@ -1,5 +1,5 @@ -const sequelize = require('./index') +const sequelize = require('./index').sequelize const { Model, DataTypes } = require('sequelize') const User = require('./user') diff --git a/server/api/models/place.js b/server/api/models/place.js index fac19112..e8ef6e90 100644 --- a/server/api/models/place.js +++ b/server/api/models/place.js @@ -1,5 +1,5 @@ const { Model, DataTypes } = require('sequelize') -const sequelize = require('./index') +const sequelize = require('./index').sequelize class Place extends Model {} diff --git a/server/api/models/resource.js b/server/api/models/resource.js index 620e9052..60d65e09 100644 --- a/server/api/models/resource.js +++ b/server/api/models/resource.js @@ -1,7 +1,6 @@ const { Model, DataTypes } = require('sequelize') -const sequelize = require('./index') +const sequelize = require('./index').sequelize -// const Event = require('./event') const APUser = require('./ap_user') class Resource extends Model {} diff --git a/server/api/models/setting.js b/server/api/models/setting.js index a09476e0..5d20fa56 100644 --- a/server/api/models/setting.js +++ b/server/api/models/setting.js @@ -1,5 +1,5 @@ const { Model, DataTypes } = require('sequelize') -const sequelize = require('./index') +const sequelize = require('./index').sequelize class Setting extends Model {} diff --git a/server/api/models/tag.js b/server/api/models/tag.js index ec292354..5dd9e300 100644 --- a/server/api/models/tag.js +++ b/server/api/models/tag.js @@ -1,5 +1,5 @@ const { Model, DataTypes } = require('sequelize') -const sequelize = require('./index') +const sequelize = require('./index').sequelize class Tag extends Model {} diff --git a/server/api/models/user.js b/server/api/models/user.js index 95c06b7e..5c30283b 100644 --- a/server/api/models/user.js +++ b/server/api/models/user.js @@ -1,7 +1,7 @@ const bcrypt = require('bcryptjs') const { Model, DataTypes } = require('sequelize') -const sequelize = require('./index') +const sequelize = require('./index').sequelize class User extends Model {}