const { Sequelize } = require('sequelize');
const path = require('path');
const envFile = process.env.NODE_ENV === 'production'
? '.env.production'
: '.env';
require('dotenv').config({ path: path.join(__dirname, '../../', envFile) });
const dbType = (process.env.DB_TYPE || 'mysql').toLowerCase();
const isDev = process.env.NODE_ENV === 'development';
let sequelize;
if (dbType === 'sqlite') {
const dbPath = process.env.DB_NAME || './data/juhe_admin.db';
sequelize = new Sequelize({
dialect: 'sqlite',
storage: dbPath,
logging: isDev ? console.log : false,
define: {
timestamps: true,
underscored: true,
freezeTableName: true,
},
});
sequelize.query("PRAGMA foreign_keys = OFF");
} else {
const dbName = process.env.DB_NAME || 'juhe_admin';
const dbUser = process.env.DB_USER || 'root';
const dbPass = process.env.DB_PASSWORD || '';
const dbHost = process.env.DB_HOST || 'localhost';
const dbPort = parseInt(process.env.DB_PORT) || 3306;
sequelize = new Sequelize(dbName, dbUser, dbPass, {
host: dbHost,
port: dbPort,
dialect: 'mysql',
logging: isDev ? console.log : false,
timezone: '+08:00',
define: {
timestamps: true,
underscored: true,
freezeTableName: true,
},
pool: {
max: 10,
min: 0,
acquire: 30000,
idle: 10000,
},
});
}
module.exports = sequelize;