5

我正在尝试使用 Sequelize CLI 工具运行数据库迁移,但我遇到了一个问题,即我的 ENV 变量没有被该工具处理。在 github 存储库中,它说在 2.0.0 版本(我在 2.4.0)中,您可以config/config.js像这样直接访问 ENV 变量,process.env.DB_HOSTNAME,但我收到一个错误,表明没有传递任何值从变量中

错误:

Unable to connect to database: SequelizeAccessDeniedError: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO)

配置.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"
4

1 回答 1

11

你忘了 requiredotenv模块:

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"
},
}
于 2017-06-26T04:24:18.077 回答