cli icon indicating copy to clipboard operation
cli copied to clipboard

Error: Dialect needs to be explicitly supplied as of v4.0.0

Open quanganh-snake opened this issue 1 year ago • 2 comments
trafficstars

1. Issue Description 'Error: Dialect needs to be explicitly supplied as of v4.0.0' is thrown when initialising sequelize via a destructured property whilst running 'npx sequelize-cli db:migrate'.

2. What are you doing? I have a 2 file config:

  • config.sequelize.js
  • config.json --> I want to use the config.sequelize.js file to use environment variables to secure information. I config file .sequelizerc with path config.json --> it's working

$ npx sequelize-cli db:migrate Sequelize CLI [Node: 20.14.0, CLI: 6.6.2, ORM: 6.37.3] Loaded configuration file "src\config\config.json". Using environment "dev". == 20240629071618-create-user: migrating ======= == 20240629071618-create-user: migrated (0.063s)

But, I use file config.sequelize.js , I get an error:

$ npx sequelize-cli db:migrate Database Type: mysql Sequelize CLI [Node: 20.14.0, CLI: 6.6.2, ORM: 6.37.3] Loaded configuration file "src\config\config.sequelize.js". ERROR: Dialect needs to be explicitly supplied as of v4.0.0

3. Additional context

3.1. File config/config.json { "dev": { "username": "root", "password": "", "database": "db2_dev", "host": "127.0.0.1", "port": 6611, "dialect": "mysql" }, "test": { "username": "root", "password": "", "database": "db2_test", "host": "127.0.0.1", "port": "3306", "dialect": "mysql" }, "production": { "username": "root", "password": "", "database": "db2_prod", "host": "127.0.0.1", "port": "3306", "dialect": "mysql" } }

3.2. File config.sequelize.js ` require("dotenv").config(); console.log("Database Type: ", process.env.DB_TYPE);

module.exports = { development: { username: process.env.DEV_DB_USERNAME, password: process.env.DEV_DB_PASSWORD, database: process.env.DEV_DB_NAME, host: process.env.DEV_DB_HOST, port: process.env.DEV_DB_PORT, dialect: process.env.DB_TYPE, }, test: { username: process.env.DEV_DB_USERNAME, password: process.env.DEV_DB_PASSWORD, database: process.env.DEV_DB_NAME, host: process.env.DEV_DB_HOST, port: process.env.DEV_DB_PORT, dialect: process.env.DB_TYPE, }, production: { username: process.env.DEV_DB_USERNAME, password: process.env.DEV_DB_PASSWORD, database: process.env.DEV_DB_NAME, host: process.env.DEV_DB_HOST, port: process.env.DEV_DB_PORT, dialect: process.env.DB_TYPE, }, };

`

3.3. File .sequelizerc ` // .sequelizerc require("babel-register"); require("dotenv").config(); const path = require("path");

// const { development } = require("./src/config/config.sequelize.js"); module.exports = { env: process.env.NODE_ENV || "dev", // config: JSON.stringify(development), config: path.resolve("./src/config/", "config.sequelize.js"),

"models-path": path.resolve("./src/models/", ""),
"seeders-path": path.resolve("./src/seeders/", ""),
"migrations-path": path.resolve("./src/migrations/", ""),

}; `

4. Environment

  • Sequelize version: 6.37.3
  • Node.js version: 20.14.0
  • Operating System: Windows 10 Pro

quanganh-snake avatar Jun 29 '24 08:06 quanganh-snake