2016-11-25 33 views
1

我想用Sequelize CLI工具运行数据库迁移,但是我遇到了一个问题,我的ENV变量没有被工具处理。在github回购中,它在版本2.0.0(我在2.4.0中)中说,你可以直接访问config/config.js中的ENV变量,如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)节点模块? 你能通过用户名root和密码测试连接数据库吗? – 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" 
}, 
}