50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
const { Sequelize } = require('sequelize');
|
|
const path = require('path');
|
|
|
|
// 환경 변수 설정
|
|
const env = process.env.NODE_ENV || 'development';
|
|
const envPath = path.resolve(process.cwd(), `.env.${env}`);
|
|
|
|
// 환경별 .env 파일 로드
|
|
require('dotenv').config({
|
|
path: envPath
|
|
});
|
|
|
|
const sequelize = new Sequelize(
|
|
process.env.DB_NAME,
|
|
process.env.DB_USER,
|
|
process.env.DB_PASSWORD,
|
|
{
|
|
host: process.env.DB_HOST,
|
|
port: process.env.DB_PORT,
|
|
dialect: 'mysql',
|
|
logging: process.env.NODE_ENV === 'development' ? console.log : false, // 개발 환경에서만 로깅 활성화
|
|
pool: {
|
|
max: 5,
|
|
min: 0,
|
|
acquire: 30000,
|
|
idle: 10000
|
|
},
|
|
define: {
|
|
charset: 'utf8mb4',
|
|
collate: 'utf8mb4_unicode_ci',
|
|
timestamps: true
|
|
}
|
|
}
|
|
);
|
|
|
|
// 데이터베이스 연결 테스트
|
|
const testConnection = async () => {
|
|
try {
|
|
await sequelize.authenticate();
|
|
console.log('데이터베이스 연결 성공!');
|
|
} catch (error) {
|
|
console.error('데이터베이스 연결 실패:', error);
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
sequelize,
|
|
testConnection
|
|
};
|