修复 MySQL 数据库兼容性问题 - strftime 函数
This commit is contained in:
+5
-2
@@ -5,6 +5,7 @@ const DB_TYPE = process.env.DB_TYPE || 'sqlite'; // 数据库类型:sqlite 或
|
|||||||
|
|
||||||
// 根据数据库类型创建连接
|
// 根据数据库类型创建连接
|
||||||
let sequelize;
|
let sequelize;
|
||||||
|
let dbDialect = 'sqlite'; // 实际使用的数据库类型
|
||||||
|
|
||||||
if (DB_TYPE === 'mysql') {
|
if (DB_TYPE === 'mysql') {
|
||||||
// MySQL 配置
|
// MySQL 配置
|
||||||
@@ -19,6 +20,7 @@ if (DB_TYPE === 'mysql') {
|
|||||||
logging: process.env.NODE_ENV === 'development' ? console.log : false
|
logging: process.env.NODE_ENV === 'development' ? console.log : false
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
dbDialect = 'mysql';
|
||||||
} else {
|
} else {
|
||||||
// SQLite 配置(默认)
|
// SQLite 配置(默认)
|
||||||
sequelize = new Sequelize({
|
sequelize = new Sequelize({
|
||||||
@@ -28,7 +30,8 @@ if (DB_TYPE === 'mysql') {
|
|||||||
dialectOptions: {
|
dialectOptions: {
|
||||||
charset: 'utf8mb4'
|
charset: 'utf8mb4'
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
dbDialect = 'sqlite';
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { sequelize, DB_TYPE };
|
module.exports = { sequelize, DB_TYPE, dbDialect };
|
||||||
@@ -5,7 +5,7 @@ const { v4: uuidv4 } = require('uuid');
|
|||||||
const { Ticket, TicketOperationRecord } = require('../models/ticketIndex');
|
const { Ticket, TicketOperationRecord } = require('../models/ticketIndex');
|
||||||
const Device = require('../models/Device');
|
const Device = require('../models/Device');
|
||||||
const User = require('../models/User');
|
const User = require('../models/User');
|
||||||
const { DB_TYPE } = require('../db');
|
const { dbDialect } = require('../db');
|
||||||
|
|
||||||
// 获取工单统计 (必须定义在 /:ticketId 之前)
|
// 获取工单统计 (必须定义在 /:ticketId 之前)
|
||||||
router.get('/stats', async (req, res) => {
|
router.get('/stats', async (req, res) => {
|
||||||
@@ -51,7 +51,7 @@ router.get('/stats', async (req, res) => {
|
|||||||
const monthlyStats = await Ticket.findAll({
|
const monthlyStats = await Ticket.findAll({
|
||||||
where,
|
where,
|
||||||
attributes: [
|
attributes: [
|
||||||
[DB_TYPE === 'mysql'
|
[dbDialect === 'mysql'
|
||||||
? require('sequelize').fn('DATE_FORMAT', require('sequelize').col('createdAt'), '%Y-%m')
|
? require('sequelize').fn('DATE_FORMAT', require('sequelize').col('createdAt'), '%Y-%m')
|
||||||
: require('sequelize').fn('strftime', '%Y-%m', require('sequelize').col('createdAt')),
|
: require('sequelize').fn('strftime', '%Y-%m', require('sequelize').col('createdAt')),
|
||||||
'month'],
|
'month'],
|
||||||
|
|||||||
Reference in New Issue
Block a user