2016-11-25 34 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" 
}, 
}