feat: 实现统一日志系统和维护模式功能
This commit is contained in:
+12
-2
@@ -1,4 +1,5 @@
|
||||
const { Sequelize } = require('sequelize');
|
||||
const logger = require('./utils/logger').module('Sequelize');
|
||||
|
||||
// 获取数据库配置
|
||||
const DB_TYPE = process.env.DB_TYPE || 'sqlite'; // 数据库类型:sqlite 或 mysql
|
||||
@@ -7,6 +8,12 @@ const DB_TYPE = process.env.DB_TYPE || 'sqlite'; // 数据库类型:sqlite 或
|
||||
let sequelize;
|
||||
let dbDialect = 'sqlite'; // 实际使用的数据库类型
|
||||
|
||||
/**
|
||||
* Sequelize SQL 日志函数
|
||||
* 仅输出 debug 级别日志,生产环境自动过滤
|
||||
*/
|
||||
const sqlLogger = (msg) => logger.debug(msg);
|
||||
|
||||
if (DB_TYPE === 'mysql') {
|
||||
// MySQL 配置
|
||||
sequelize = new Sequelize(
|
||||
@@ -17,7 +24,7 @@ if (DB_TYPE === 'mysql') {
|
||||
host: process.env.MYSQL_HOST || 'localhost',
|
||||
port: parseInt(process.env.MYSQL_PORT) || 3306,
|
||||
dialect: 'mysql',
|
||||
logging: process.env.NODE_ENV === 'development' ? console.log : false,
|
||||
logging: sqlLogger,
|
||||
// 连接池配置 - 提升并发处理能力
|
||||
pool: {
|
||||
max: 10, // 最大连接数
|
||||
@@ -32,7 +39,7 @@ if (DB_TYPE === 'mysql') {
|
||||
sequelize = new Sequelize({
|
||||
dialect: 'sqlite',
|
||||
storage: process.env.DB_PATH || './idc_management.db',
|
||||
logging: console.log,
|
||||
logging: sqlLogger,
|
||||
// SQLite 连接池配置
|
||||
pool: {
|
||||
max: 5,
|
||||
@@ -42,6 +49,9 @@ if (DB_TYPE === 'mysql') {
|
||||
},
|
||||
});
|
||||
dbDialect = 'sqlite';
|
||||
|
||||
// 启用 SQLite 外键约束支持
|
||||
sequelize.query('PRAGMA foreign_keys = ON');
|
||||
}
|
||||
|
||||
module.exports = { sequelize, DB_TYPE, dbDialect };
|
||||
|
||||
Reference in New Issue
Block a user