Sequelize CLI не находит переменные env
Я пытаюсь запустить миграцию БД с помощью инструмента Sequelize CLI, но у меня возникает проблема, когда мои переменные ENV не обрабатываются этим инструментом. В репозитории github говорится, что в версии 2.0.0 (я на 2.4.0) вы можете напрямую обращаться к переменным ENV в config/config.js
например, process.env.DB_HOSTNAME, но я получаю сообщение об ошибке, указывающее, что из переменных не передаются значения
Ошибка:
Unable to connect to database: SequelizeAccessDeniedError: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO)
config.js:
module.exports = {
"development": {
"username": process.env.LOCAL_USERNAME,
"password": process.env.LOCAL_PASSWORD,
"database": process.env.LOCAL_DATABASE,
"host": "127.0.0.1",
"dialect": "mysql",
"migrationStorageTableName": "sequelize_meta"
},
}
.env:
LOCAL_DATABASE="db_name"
LOCAL_USERNAME="root"
LOCAL_PASSWORD="test"
1 ответ
Решение
Ты забыл требовать dotenv
модуль:
require('dotenv').config(); // this line is important!
module.exports = {
"development": {
"username": process.env.LOCAL_USERNAME,
"password": process.env.LOCAL_PASSWORD,
"database": process.env.LOCAL_DATABASE,
"host": "127.0.0.1",
"dialect": "mysql",
"migrationStorageTableName": "sequelize_meta"
},
}