WEB
[WEB] Sequelize Error: Dialect needs to be explicitly supplied as of v4.0.0
ImFe
2023. 8. 9. 02:00
문제 상황
- sequelize@6.32.1에서 /models/index.js에 config/config.js과 cross-env를 연동하던 중 발생
- dot-env와 연동 편의를 위해 cross-var 이용, 기존 config.json을 config.js로 변경
- 환경변수 값을 분기하는 코드는 config/config.js로 분리
- Error: Dialect needs to be explicitly supplied as of v4.0.0 오류 발생
시도한 방법들
- 버젼 호환성 확인
- 현재 버젼이 더 높음
- 값이 정확한지
- new Sequelize 생성자 인자 변경
- 상관 없음
// 기존
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}
// 변경
/**
* DB 이름, DB 사용자 이름, DB 접근 비밀번호, config파일
*/
sequelize = new Sequelize(config.database, config.username, config.password, config)
// 변경
sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
dialect: config.dialect
});
// 최종, 다른 것들도 되는데 이게 제일 간편해서..
sequelize = new Sequelize(config)
원인
/**
* index.js(진입점)에 config 코드 누락.
* 현재 프로젝트 구조의 경우 최상단에 위치하여야 정상적으로 값을 이용할 수 있다.
*/
require('dotenv').config()