const { Sequelize } = require('sequelize'); const mysql = require('mysql2/promise'); // 环境配置 const NODE_ENV = process.env.NODE_ENV || 'local'; // 数据库配置 const dbConfig = { local: { host: 'localhost', user: 'root', password: 'root', database: 'rentease' }, development: { host: 'localhost', user: 'root', password: '123456', database: 'rentease' }, production: { host: '8.152.207.41', user: 'rentease', password: 'Wxx@123!', database: 'rentease' } }; // 获取当前环境的配置 const currentConfig = dbConfig[NODE_ENV]; // 先创建数据库 const createDatabase = async () => { try { // 连接到MySQL服务器 const connection = await mysql.createConnection({ host: currentConfig.host, user: currentConfig.user, password: currentConfig.password }); // 创建数据库 await connection.query(`CREATE DATABASE IF NOT EXISTS ${currentConfig.database}`); console.log('数据库创建成功'); await connection.end(); return true; } catch (error) { console.error('创建数据库失败:', error); return false; } }; // 创建数据库连接 - 使用MySQL const sequelize = new Sequelize( currentConfig.database, // 数据库名称 currentConfig.user, // 用户名 currentConfig.password, // 密码 { host: currentConfig.host, dialect: 'mysql', logging: false, timezone: '+08:00' } ); // 测试数据库连接 const testConnection = async () => { try { await createDatabase(); // 重新创建sequelize实例,确保连接管理器是活跃的 const newSequelize = new Sequelize( currentConfig.database, // 数据库名称 currentConfig.user, // 用户名 currentConfig.password, // 密码 { host: currentConfig.host, dialect: 'mysql', logging: false, timezone: '+08:00' } ); await newSequelize.authenticate(); console.log('数据库连接成功'); return newSequelize; } catch (error) { console.error('数据库连接失败:', error); return sequelize; } }; // 导出sequelize实例 module.exports = sequelize;