2017-03-01 66 views
0

運行sequelize CLI不使用Postgres的

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 

然後在看看配置/ 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端口? ialso添加了端口,您可以在配置文件中看到。我找不到任何資源說不支持postgres。但似乎sequelize-cli仍然不關心方言,甚至不關心我在config-file中輸入的端口號。

回答

1

好像你NODE_ENVdevelopmenttestproduction不同,因爲它是否會符合其中任何一個,你會得到像

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。這意味着你的不同。

相關問題