55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
const { Sequelize } = require('sequelize');
|
|
require('dotenv').config();
|
|
|
|
// 数据库连接配置
|
|
const sequelize = new Sequelize({
|
|
host: process.env.DB_HOST || '129.211.213.226',
|
|
port: process.env.DB_PORT || 9527,
|
|
database: process.env.DB_NAME || 'jiebandata',
|
|
username: process.env.DB_USER || 'root',
|
|
password: process.env.DB_PASSWORD || 'aiotAiot123!',
|
|
dialect: process.env.DB_DIALECT || 'mysql',
|
|
logging: process.env.NODE_ENV === 'development' ? console.log : false,
|
|
pool: {
|
|
max: 5,
|
|
min: 0,
|
|
acquire: 30000,
|
|
idle: 10000
|
|
},
|
|
define: {
|
|
timestamps: true,
|
|
underscored: true,
|
|
freezeTableName: true
|
|
},
|
|
timezone: '+08:00'
|
|
});
|
|
|
|
// 测试数据库连接
|
|
const testConnection = async () => {
|
|
try {
|
|
await sequelize.authenticate();
|
|
console.log('✅ 数据库连接成功');
|
|
return true;
|
|
} catch (error) {
|
|
console.error('❌ 数据库连接失败:', error.message);
|
|
return false;
|
|
}
|
|
};
|
|
|
|
// 同步数据库模型
|
|
const syncDatabase = async (options = {}) => {
|
|
try {
|
|
await sequelize.sync(options);
|
|
console.log('✅ 数据库同步成功');
|
|
} catch (error) {
|
|
console.error('❌ 数据库同步失败:', error);
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
sequelize,
|
|
testConnection,
|
|
syncDatabase,
|
|
Sequelize
|
|
}; |