【问题标题】:Sequelize CLI Not Finding Env VariablesSequelize CLI 找不到环境变量
【发布时间】:2016-11-25 15:57:54
【问题描述】:

我正在尝试使用 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)

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"

【问题讨论】:

  • 你在使用 dotenv(github.com/motdotla/dotenv) 节点模块吗?可以通过用户名root和密码test连接db吗?
  • 你是怎么解决这个问题的?

标签: sequelize.js sequelize-cli


【解决方案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"
},
}

【讨论】:

    猜你喜欢
    • 2016-07-11
    • 2013-04-17
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2018-08-19
    相关资源
    最近更新 更多