2016-11-25 5 views
1

Я пытаюсь выполнить миграцию db с помощью инструмента Sequelize CLI, но у меня возникает проблема, когда мои переменные ENV не обрабатываются инструментом. В реестре github он говорит, что в версии 2.0.0 (я на 2.4.0) вы можете напрямую обращаться к переменным ENV в config/config.js, как, например, process.env.DB_HOSTNAME, но я получаю сообщение об ошибке, которое указывает, что никакие значения не являются переданных из переменныхSequelize CLI Неиспользуемые переменные Env

Ошибка:

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" 
+0

вы используете dotenv (https://github.com/motdotla/dotenv) модуль узла? Можете ли вы подключить db через проверку имени пользователя и пароль? – maheshiv

+0

как вы решили проблему? –

ответ

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" 
}, 
}