【问题标题】:sequelize cli not using postgres续集cli不使用postgres
【发布时间】:2017-07-21 02:27:36
【问题描述】:

跑步

sequelize db:migrate

打印出来:

Sequelize [Node: 6.9.4, CLI: 2.4.0, ORM: 3.24.6]

Loaded configuration file "config\development.json".
Unable to connect to database: SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306

然后看看我看到的 config/development.json:

{
    "development": {
    "username": "postgres",
    "password": "password",
    "database": "mydb",
    "host": "127.0.0.1",
    "port": "5432",
    "dialect": "postgres"
    },
    "test": {
    "username": "postgres",
    "password": "password",
    "database": "mydb",
    "host": "127.0.0.1",
    "port": "5432",
    "dialect": "postgres"
    },
    "production": {
    "username": "postgres",
    "password": "password",
    "database": "mydb",
    "host": "127.0.0.1",
    "port": "5432",
    "dialect": "postgres"
    }
}

为什么?为什么sequelize还在尝试去mysql端口?正如您在配置文件中看到的那样,我还添加了端口。我找不到任何资源说不支持 postgres。但似乎 sequelize-cli 仍然不关心方言甚至我在 config-file 中输入的端口号。

【问题讨论】:

    标签: sequelize.js sequelize-cli


    【解决方案1】:

    您的NODE_ENV 似乎与developmenttestproduction 不同,因为如果它匹配其中任何一个,您会收到类似的消息

    Loaded configuration file "config/development.json".
    Using environment "development".
    Unable to connect to database: SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306
    

    但是,在您的情况下,它不会打印它使用的环境,因此这意味着它在您的 development.json 文件中没有。你可以试试

    sequelize db:migrate --env development
    

    根据sequelize-cli源代码,它使用getEnvironment方法获取环境变量是这样的:

    getEnvironment: function () {
        return args.env || process.env.NODE_ENV || 'development';
    }
    

    如果您不传递--env 参数,则它采用当前NODE_ENV。这意味着你的不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-20
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      相关资源
      最近更新 更多