ImFe's study

[WEB] Sequelize Error: Dialect needs to be explicitly supplied as of v4.0.0 본문

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()
Comments