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"
},
}
Другие вопросы по тегам